Накидайте примеров ошибок, возникающих из-за либеральности языка

Василий М.

Новичок
Сабж.

Сегодня наткнутся на то, что в моём методе array_unsifth($obj->prop) ругался на то, что свойство не является массивом. Оказалось, что свойство вообще не было объявлено в классе, т.е. могло быть, а могло и не быть и в класс оно поступало где-то в клиентском коде так:
PHP:
$obj->prop = array(...);
можете ещё примеры из вашей практики привести?
 

MiksIr

miksir@home:~$
E_STRICT + хороший IDE решают 95% подобных проблем.
Кстати, а вот почему php в E_STRICT не ругается к обращению несуществующего свойства в объекте я не понимаю.
 

itprog

Cruftsman
MiksIr
из-за simplexml, mysql_fetch_object, например, или из-за такого кода:
PHP:
$a = array('name' => 123);
var_dump((object)$a);
 

MiksIr

miksir@home:~$
Ну если объект от класса и там нет магии — вполне можно было бы ругаться. Хотя тут нагуглил — человек жалуется что у него ругается когда он к свойству объекта stdclass-а... от версии зависит?
 

weregod

unserializer
Всё, что кидает нотисы, плохо.
Ещё обожаю такие места в коде:
PHP:
if(..){
    statement1;
    statement2;
    statement3;
}else
    statement4;
    statement5;
    statement6;
а сидеть-гадать, забыли фигурные скобки, или это следствие переформатирования/замены табуляций на пробелы, некогда
 
Сверху