Опечатки в обеих системах обозначений НЕ будут обнаружены во время компиляции.Опечатки в обоих обозначениях приведут только к PHP_NOTICE
, и приложение продолжит работу, если вы не попытаетесь выполнить какую-либо недопустимую операцию (например, вызвать неопределенный метод).
Подумайте о неправильном наборе номера телефона в Phonenombers:
$number = $user['Phonenombers'][0]['number']; // Notice: Undefined index
$number = $user->PhoneNombers[0]->number; // Notice: Undefined property
Или в случае неправильного ввода 'user' в 'userr':
$number = $userr->PhoneNombers[0]->number;
// Notice: Undefined variable
// Notice: Trying to get property of non-object
Во всех случаях выше переменной $number
будет установлено значение NULL
.
С другой стороны, следующий код вызовет PHP_ERROR
, и скрипт прекратит выполнение
$userr->free(); //Fatal error: Call to undefined method
Все приведенные выше примеры будут выдавать PHP_NOTICE
или PHP_ERROR
соответственно только при выполнении во время выполнения скрипта.Например, следующее NOT произведет PHP_NOTICE
или PHP_ERROR
:
if(false) {
$userr->free();
}
Итак, наконец, ответ НЕТ, это не относится к PHP / Doctrine.Если вам не нужны какие-либо методы для объекта Doctrine_Collection
, вы должны использовать вместо этого увлажнение массива, потому что он быстрее и использует меньше памяти.