LINUX.ORG.RU

Ну чё, это надо отметить фронтовыми 200 граммами.

Hertz ★★★★★
()
Ответ на: комментарий от random_linux_user

1. Шаблонизатор наконец-то стал шаблонизатором (<?= работает теперь независимо от short_open_tags)
2. hex2bin() запилили (pack() теперь не нужно использовать)

GateKeeper ★★
()
Ответ на: комментарий от anonymous

Вполне достаточно, чтобы у какого0нибудь Васи Пупкина сайт перестал работать

r_asian ★☆☆
()

o_O

- Removed legacy features:
  . Safe mode and all related ini options. (Kalle)
  . register_globals and register_long_arrays ini options. (Kalle)
  . import_request_variables(). (Kalle)

Я считаю, это победа!

baverman ★★★
()
Ответ на: комментарий от baverman

. register_globals and register_long_arrays ini options. (Kalle)

Вот это точно «васипупкиносайтокапец».

r_asian ★☆☆
()
Ответ на: комментарий от heisenberg

Бред!

Убогий язык сравнивать с python. У пэхэпэ родовые проблемы, которые уже неисправимы, он уродлив изначально!

yanka ★★
()
Ответ на: Бред! от yanka

Думал такие провокации уже не работают, а оказалось, что всё ещё актуальны.

AlexKiriukha ★★★★
()
Ответ на: комментарий от anonymous

Что тут js'ненького? Это из покон веков везде есть, вроде...

urxvt ★★★★★
()
Ответ на: комментарий от baverman

Жду выпила magic_quotes, это будет куда радостнее.

anonymous
()
Ответ на: комментарий от urxvt

ООП в похапе как не было так и никогда не будет. Если кому-то, в ранние времена 5-й ветки, и казалось что оно там есть то теперь уже сомнений нет.

Шаг влево (JS)? «недо-ООП!!!!!111111»

Шаг вправо (PHP)? «Недо-ООП!!!!!!!!!!!!!!1111111111»

Шаг вообще влево (CLOS)? «НЕДО-ООП!!!!!!!!!!!!!!111111111111111111»

random_linux_user
()
Ответ на: комментарий от valich

Откуда вы такие жырненькие беретесь?

Не вижу нигде жирного троллинга. Троллинг тут как раз таки у тех, кто вопит о так называемом «неправильном ООП» в JS, PHP, CL, ____.

Повторю в сотый раз: ООП просто *другой* в этих языках и отличается от того, что мы используем в Java/C++.

random_linux_user
()
Ответ на: комментарий от random_linux_user

ООП просто *другой*

Ага: наследования нет, перегрузки нет, да в JS даже типов данных нет! Какой это, нафиг, ООП!!!

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от Eddy_Em

Ага: наследования нет, перегрузки нет, да в JS даже типов данных нет! Какой это, нафиг, ООП!!!

Почитай про прототипы. Синтаксическая перегрузка в JS совершенно не делает погоды (почитай про arguments). Типы данных? Толсто.

random_linux_user
()
Ответ на: комментарий от Eddy_Em

Все это можно самому реализовать, или взять готовую реализацию.

o
()
Ответ на: комментарий от random_linux_user

Я всегда думал что парадигма это «вот-так», а если похоже но не то то это уже не она.

Я не адепт ООП, скорее наоборот. Меня просто веселит (если мягко выразится) что в каждой вакансии/собеседовании, каждый «программист» носятся с этим ООП при этом сами его не понимая и не используя.

urxvt ★★★★★
()
Ответ на: комментарий от urxvt

Есть такое. Еще бесят студенты, прочитавшие брошюрку по С++ и считающие, что знают язык. А пишут черт те что.

// и вообще, многие дети считают, что чтобы «стать Ъ хакером», достаточно скачать «набор программок» и «выучить» С/C++/etc. А то, что там еще базис по математике, физике и т.п. нужен - как-то не думают.

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от urxvt

Особенно после этого https://wiki.php.net/rfc/traits

With Traits it is possible to refactor this redundant code out.

 <?php
 trait ezcReflectionReturnInfo {
   function getReturnType() { /*1*/ }
   function getReturnDescription() { /*2*/ }
 }
 
 class ezcReflectionMethod extends ReflectionMethod {
   use ezcReflectionReturnInfo;
   /* ... */
 }
 
 class ezcReflectionFunction extends ReflectionFunction {
   use ezcReflectionReturnInfo;
   /* ... */
 }
 ?>

NOOOOOOOOOES!

Теперь прочитать похапэ-код будет вообще невозможно :) Толпы обфускаторов заобфускачат этой фигней всё до смерти

stevejobs ★★★★☆
()
Ответ на: комментарий от Eddy_Em

> А то, что там еще базис по ... физике и т.п. нужен

учоный шоле? :)

stevejobs ★★★★☆
()
Ответ на: комментарий от d0de-stillhet

вот физика в программировании нафик не вперлась

Вперлось общее образование (не школьное) и, следовательно, кругозор.

baverman ★★★
()

кстати, так до сих пор и не изобрели именованные параметры при вызове функции. пока еще не торт.

GateKeeper ★★
()
Ответ на: комментарий от cds

вот потому и не торт, ибо варианты:

func_get_args()
альтернативный вариант для того:
function myfunc(array $params) {};
либо такой вариант:
function myfunc($param, $param1 = False, $param2 = array(), $param3 = Null, ..., $param10 = False) {
    do_smth();
}

myfunc($reqParam, False, array(), Null, ..., True) # и это только чтобы передать последний параметр в недефолтном значении
Везде выглядит криво - в первом случае code assist может сойти с ума Во втором случае - это как в кохане получится - на любой чих: myfunc(array('someparam' => 'someval')) В третьем - ну ты понял.

И это вместо простейшего варианта: myfunc($reqParam, $param10 = True);

GateKeeper ★★
()
Ответ на: комментарий от GateKeeper

если тебя беспокоит что передается array $arg, то можно сделать extract($arg) и будут у нас в функции какбы именованные переменные какие надо

anonymous
()
Ответ на: комментарий от anonymous

тогда зачем вообще 5.4 этот нужен? там тоже все ништяк: pack() для hex2bin(), register_globals и прочий фарш, многие всегда так делали.

GateKeeper ★★
()
Ответ на: комментарий от anonymous

надо: функция, с 10 параметрами, первый обязательный, остальные имеют дефолтные значения

function func($reqArg, $arg1 = False, $arg2 = False, ..., $arg9 = False)
{
    if ($arg1) do_smth1();
    if ($arg2) do_smth2();
    ...
}
твой вариант:
function func(array $args)
{
    extract($args);
    do_smth($reqArg);
    if ($arg1) do_smth1();
    if ($arg2) do_smth2();
    ...
}
//А теперь вызовем:
func(array('arg10' => True));
Рассказывай ништяк, анон.

GateKeeper ★★
()
Ответ на: комментарий от GateKeeper
function func(array $args) {
    $defaults = array('a1' => 1, 'a2' => 2);
    extract($defaults);
    extract($args);
    var_dump($a1);
    var_dump($a2);
    var_dump($a3);
}

func(array('a2' => 666,'a3' => 13));
anonymous
()
Ответ на: комментарий от anonymous
$ php b.php 
PHP Warning:  Missing argument 1 for func(), called in ~/devel/b.php on line 6 and defined in ~/devel/b.php on line 2
$ cat b.php 
<?php
function func($arg, $arg1 = false, $arg2 = false)
{
}

func();

ты понял, к чему я веду, анон? Реализация через extract() и array $args изобилует костылями, половина кода функции будет вся в if (isset()) для «обязательных» параметров (в твоем случае он один - array $args), autocompletion твой extract($defaults) ниразу не распарсит ну и прочие ништяки.

GateKeeper ★★
()
Ответ на: комментарий от Deleted

> Это прорыв.
Будет. Когда модули доползут до php-5.4. Хоть внуки порадуются.

Deleted
()
Ответ на: комментарий от GateKeeper

В такие моменты я роняю скупую мужскую слезу в память о строгой типизации и разделению кода на объявление даных и собственно их обработку. Ещё в старом Паскале Вирт заложил шикарнейшее, строжайшее Model-Controller, которое с приходом Turbo Vision стало MVC, потому что не отделяя V от C сам потом хрен поймёшь, где что находится, ибо объём рукописного кода в объектах был несоизмеримо высок по сравнению с сегодняшним днём, а PHP всё угробил, мать его.

Deleted
()
Ответ на: комментарий от Deleted

Хотя если копать в сторону отделения данных от кода, можно доползти до ALGOL-60, поэтому да, Вирт слизал идею, /thread.

Deleted
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.