Вам следует определить эту переменную статичной.
class Test
{
public static $p = 5;
public static print()
{
echo self::$p;
}
}
Test::$p = 9;
$obj = new Test();
$obj->print(); // 9
Либо сделать чуть иначе, но смотря как вам удобнее
class Test
{
private static $_p = 5;
public $p;
public function __construct()
{
$this->p = self::$_p;
}
public function update($value)
{
$this->p = $value;
self::$_p = $value;
}
public static print()
{
echo $this->p;
}
}
$obj = new Test();
$obj->update(9);
$obj->print(); // 9