Войти в систему

Home
    - Создать дневник
    - Написать в дневник
       - Подробный режим

LJ.Rossia.org
    - Новости сайта
    - Общие настройки
    - Sitemap
    - Оплата
    - ljr-fif

Редактировать...
    - Настройки
    - Список друзей
    - Дневник
    - Картинки
    - Пароль
    - Вид дневника

Сообщества

Настроить S2

Помощь
    - Забыли пароль?
    - FAQ
    - Тех. поддержка



Пишет mumuntu ([info]mumuntu)
@ 2010-10-22 17:39:00


Previous Entry  Add to memories!  Tell a Friend!  Next Entry
Лыжи не едут
Интересно, почему интерпретатор PHP в строчке
if (!empty($a->getField('b'))) {

дает ошибку "Fatal error: Can't use method return value in write context"

Может, я чего-то не понимаю в PHP?


(Добавить комментарий)


[info]bopm@lj
2010-10-22 09:44 (ссылка)
http://stackoverflow.com/questions/1075534/php-cant-use-method-return-value-in-write-context же

(Ответить) (Ветвь дискуссии)


[info]alexclear@lj
2010-10-22 09:48 (ссылка)
Ошибка особенно релевантна.
Ну да, я это переписал как по ссылке.
Оказывается, ($a->b($c))[$d] тоже нельзя сделать.
Говно язык.

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]bopm@lj
2010-10-22 09:49 (ссылка)
Притом, у меня устойчивое ощущение, что в php 4.x это работало. Ура настоящему ООП.

(Ответить) (Уровень выше)


[info]vosi@lj
2010-10-22 12:36 (ссылка)
inconsistency and head-scratchers are a fact of life in PHP-land
со ссылки выше

(Ответить) (Уровень выше)


[info]altmind@lj
2010-10-22 14:22 (ссылка)
в последних php(5.3?) можно. известный косяк.

(Ответить) (Уровень выше)


[info]wolfor@lj
2010-10-22 09:47 (ссылка)
Ох, бля.

(Ответить)


[info]vosi@lj
2010-10-22 09:52 (ссылка)
http://ua.php.net/empty

Note:
empty() only checks variables as anything else will result in a parse error. In other words, the following will not work: empty(trim($name)).

(Ответить) (Ветвь дискуссии)


[info]alexclear@lj
2010-10-22 11:06 (ссылка)
Это прекрасно, но сообщение об ошибке мне пыталось сказать нечто другое. Не то, что имелось в виду.

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]vosi@lj
2010-10-22 12:01 (ссылка)
в пэхапэ это часто

(Ответить) (Уровень выше)


[info]yurri@lj
2010-10-22 10:16 (ссылка)
Меня больше интересует, почему эта функция строковый ноль считает пустым значением.

(Ответить) (Ветвь дискуссии)


[info]rainman_rocks@lj
2010-10-22 11:44 (ссылка)
Ну как же. Ноль - не деньги.

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]vosi@lj
2010-10-22 12:00 (ссылка)
zend, такой zend ))))

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]rainman_rocks@lj
2010-10-22 12:16 (ссылка)
Да там сложно отследить, кто из них наиболее феерический дятел - еврейские пацаны или Лердорф.
Или вообще Ларри Уолл, сумрачный гений.

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]vosi@lj
2010-10-22 12:34 (ссылка)
Он дважды побеждал в международном конкурсе запутанного кода на языке программирования Си.
цитато в вики

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]rainman_rocks@lj
2010-10-22 12:36 (ссылка)
Мне вообще непонятно, почему он ещё жив и на свободе.

(Ответить) (Уровень выше)


[info]gmother_arised@lj
2010-10-22 14:42 (ссылка)
потому что там часто хер поймёшь, стринг у тебя сейчас в переменной или нумбер. если 0 считать пустым, а "0" непустым - поведение будет гораздо менее предсказуемым.

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]max630@lj
2010-10-23 00:08 (ссылка)
там всё нормально понимается. просто большинство писателей выше таких мелочей

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]gmother_arised@lj
2010-10-23 01:20 (ссылка)
ну да, просто найти баг в каком-нибудь запутанном чужом коде, который глючит от того, что у тебя ноль стринговый вместо численного вдруг влез, может быть нетривиально.

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]max630@lj
2010-10-23 01:46 (ссылка)
Баг - это когда коду, который ожидает число, "вдруг" передаётся строка. Или наоборот.

(Ответить) (Уровень выше)


[info]rainman_rocks@lj
2010-10-22 11:42 (ссылка)
> Может, я чего-то не понимаю в PHP?

Тех, кто в PHP всё понимает, давно уже забрали санитары.

(Ответить)


[info]max630@lj
2010-10-22 12:38 (ссылка)
А зачем может быть нужна такая функция, если есть isset (или вовсе array_key_exists) с одной стороны и FALSE === с другой?

(Ответить) (Ветвь дискуссии)


[info]alexclear@lj
2010-10-22 14:30 (ссылка)
В isset тоже нельзя передать результат вызова метода.

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]max630@lj
2010-10-23 00:02 (ссылка)
насколько я понимаю, там скорее FALSE === нужен.

(Ответить) (Уровень выше)


[info]altmind@lj
2010-10-22 14:25 (ссылка)
а вас никогда не удивляло, что unset - это функция? и как можно очистить переменную по значению. design flaws, да

(Ответить)


[info]nivanych@lj
2010-10-22 14:34 (ссылка)
Ох. Дико извиняюсь, конечно, но кроме злорадства, в голову ничего не приходит.
Заем PHP, кто заставил? ;-)

(Ответить)


(Анонимно)
2010-11-02 02:40 (ссылка)
забавно читать говноедов, которые поливали всю дорогу PHP говном, а теперь, увы, вынуждены с ним работать. как проститутки, которых заставили сосать поневоле

(Ответить) (Ветвь дискуссии)


[info]alexclear@lj
2010-11-02 07:13 (ссылка)
У Вас какая-то каша в голове.

(Ответить) (Уровень выше)


[info]gabaidulin@lj
2010-11-17 18:48 (ссылка)
На голом php писать неудобно.

(Ответить)