Возможно ли изменить свойство класса?
Ну как вариант - сделать класс-наследник от Test, и в конструкторе класса-наследника переопределять значение q. Везде потом использовать наследника.
Вам следует определить эту переменную статичной.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