PHP6. Вести с фронта.

tony2001

Из всех ваших высказываний могу сделать только один вывод: реализация такой фичи - дело не двух минут, и корпеть над ней никто не будет, так как "и без вас тошно".

Да, и, зачем же, все-таки, такой синтаксис с объектами внедрили, всё никак не пойму. Понимаю, было всё понятно - это объект полученный из функции, а это свойство или метод объекта, а тут поналепили - func()->method()->property; черт ногу сломит, перл прям какой-то, я не знаю.

-~{}~ 28.09.06 15:21:

да и конструкцию list() удалить бы тогда
 
camka

> зачем же, все-таки, такой синтаксис с объектами внедрили

Ну разные это вещи. Объект один, а элементов массива много.

Насчет list согласен. Пользы от нее столько же, сколько от возможности указывать один элемент массива при получении оного из функции.
 
>Из всех ваших высказываний могу сделать только один вывод: реализация такой
> фичи - дело не двух минут, и корпеть над ней никто не будет, так как "и без вас
> тошно".
дело не в реализации, а в принципе.
такие конструкции только добавляют сложности языку.

>да и конструкцию list() удалить бы тогда
двумя руками "за".
 
whirlwind
ээээ... про list() - это был сарказм.

-~{}~ 28.09.06 15:34:

tony2001
Сложности, в смысле читабельности кода, или внутренней реализации языка?
 
> ээээ... про list() - это был сарказм.

а я нифига не шутил :)

list() и scalar() в перл - это форсирование контекста спискового и скалярного соответственно. нафига она в php, если

0. в php отсутствует понятие контекста
1. list может быть только приемником
2. все равно нотайс, на несуществующие индексы

если порыццо можно еще ченить найти в плане ее бесполезности
 
tony2001

Тогда я не пойму, зачем сделали такое для объектов.
 
Может оставим только сложение и вычитание, а остальное.... ну его нафик :)
 
а нормальные lambda функции будут?
вроде:
array_filter($a, function($i) { return $i>0; });
чем, по старинке:
array_filter($a, create_function("\$i", "return \$i>0;"));
 
diamond_krnl
Можно узнать чем, по вашему мнению, вызвана необходимость того, чтобы php поддерживал такой синтаксис?
 
phprus
пример приведен.
или ты хочешь чтобы тебя убеждали?
 
phprus, посматрите на JavaScript, такой стиль открывает новые возможности,
не говоря о том что create_function по сути eval заведо медленный,
плюс ко всему это просто красиво, хотя фишка и без которой жить можно. (:
 
Frol
приведен очередной удивительно нечитабельный пример.
нет, нам не нужно чтоб нас убеждали, что это - чем-то лучше.
 
Автор оригинала: tony2001
приведен очередной удивительно нечитабельный пример.
нет, нам не нужно чтоб нас убеждали, что это - чем-то лучше.
Перевожу: потрошки PHP слишком кривы, чтобы функции можно было сделать first-class objects. ;)
 
>>Перевожу: потрошки PHP слишком кривы, чтобы функции
>>можно было сделать first-class objects.
а че почитать-то чтоб понять о чем ты. сорцы не предлагать ;)
кстати, в данном конкретном случае ты имхо вообще не о том - для любого языка приведенный пример выглядит чудовищно.
ну впрочем, как и create_function :)

>>двумя руками "за"
не трожь! че за большевизм пошел? :)
 
Sad Spirit
я написал на русском, переводить там нечего, не трудись.
 
tony2001 странное у Вас отношение к читабельности.

fisher
> приведенный пример выглядит чудовищно
для любого языка, где нет анонимных функций.
 
tony2001
я рад, что create_function является для разработчиков пхп более читабельным.
 
Автор оригинала: fisher
>>Перевожу: потрошки PHP слишком кривы, чтобы функции
>>можно было сделать first-class objects.
а че почитать-то чтоб понять о чем ты. сорцы не предлагать ;)
Издеваешься? http://en.wikipedia.org/wiki/First-class_object :)

Я тонко намекаю, что в PHP нет такой вещи, как литерал функции. В большинстве скриптовых языков, начиная с любимого народом жаваскрипта, это есть:
Код:
var foo = function(bar) { alert(bar); }
рассказы о том, что ни на что не похожий create_function() удобнее такой (более-менее) стандартной записи можно оправдать только чрезмерным PHPатриотизмом. ;) Или доскональным знанием потрошков PHP, не позволяющих это реализовать.
 
Сверху