Да. PHP будет просто создавать любые переменные-члены, на которые ссылаются, но не были объявлены. Я просто проверял с помощью следующего кода:
<?php
class Test {
public function __construct() {
}
public function setMembers() {
$this->foo = "fooValue";
$this->bar = "barValue";
}
public function echoMembers() {
echo $this->foo . "\n";
echo $this->bar . "\n";
}
}
$test = new Test();
$test->setMembers();
$test->echoMembers();
?>
При выполнении этой выходы:
fooValue
barValue
что доказывает, что это работает. Я по-прежнему рекомендую объявить все переменные-члены класса в верхней части класса. Это то, о чем будут ожидать программисты OO, поддерживающие ваш код.
FYI: Я провел тест с помощью следующей версии PHP:
$ php -version
PHP 5.2.8 (cli) (built: Feb 5 2009 21:21:13)
Copyright (c) 1997-2008 The PHP Group
Zend Engine v2.2.0, Copyright (c) 1998-2008 Zend Technologies
Не нужно объявлять на верхнем уровне, php не является строгим и не требуется. – dusoft