Yes, learing OOP at the beginning will be a good way to learn good software design practices and avoid learning bad coding habits. However, be aware that simply learning how to use classes, objects, and their associated PHP functions does not mean you are doing object-oriented programming: it is entirely possible to write a procedural script using classes, and it is possible (though more difficult) to do object-oriented programming without classes.
The reason your last example worked is that the child class B overwrites the $atr1 parameter with a different default value. Thus when you call the parent's kh() method, you are now using the new value. Also, since you are inheriting methods as well as data, you do not need to call the method via "parent::":
<?php
class A
{
protected $atr1 = "a value ";
protected function kh ()
{
echo " The \$atr value is = $this->atr1 ";
}
}
class B extends A
{
protected $atr1 = "different";
function __construct()
{
$this->kh();
}
}
$x = new B();