1.1, Аноним (-), 22:37, 28/08/2014 [ответить] [﹢﹢﹢] [ · · · ]
| +5 +/– |
уверены насчет "const ONE = 1; const TWO = ONE + 2;"
т.к. TWO тогда будет 3 )))
| |
|
2.2, freehck (ok), 22:41, 28/08/2014 [^] [^^] [^^^] [ответить]
| +12 +/– |
И в таких вот примерах программирования на PHP все интернеты...
| |
|
1.4, Аноним (-), 22:57, 28/08/2014 [ответить] [﹢﹢﹢] [ · · · ]
| +1 +/– |
> Поддержка алгоритма хэширования gost-crypto
это должно быть в самом языке?
| |
|
2.12, Анонизм (?), 05:29, 29/08/2014 [^] [^^] [^^^] [ответить]
| +/– |
>> Поддержка алгоритма хэширования gost-crypto
> это должно быть в самом языке?
Why not? Мне кажется чем больше стандартизовано на уровне языка (только нормально, с какими-то конвенциями всё-таки, а не так, что у решающих совершенно аналогичные задачи функций разные порядки аргументов и т.п.) - тем лучше - меньше простор для "велоспорта", меньше "самобытности" и "неповторимого стиля" в разных программах, лучше портируемость программ.
| |
2.17, йцу (?), 09:29, 29/08/2014 [^] [^^] [^^^] [ответить]
| +/– |
Не в языке, а в стандартной библиотеке. Почему бы и нет?
| |
|
1.5, Аноним (-), 23:08, 28/08/2014 [ответить] [﹢﹢﹢] [ · · · ]
| +2 +/– |
>> mysqlnd добавлен новый метод извлечения данных, примечательный меньшим потреблением памяти за счёт большего числа операций копирования блоков памяти;
Месье знает толк
| |
|
|
3.48, Аноним (-), 17:58, 29/08/2014 [^] [^^] [^^^] [ответить]
| +/– |
Вместо выделения буферов и копирования можно было реализовать указатель на память
| |
|
|
1.6, freehck (ok), 23:24, 28/08/2014 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
> "function f($req, $opt = null, ...$params)"
> все дополнительные аргументы передаются в форме массива $params.
Ага. Они научились передавать дополнительные аргументы в виде списка при использовании специальной конструкции. Почему мне это напоминает точку?
> используя оператор "...". Например, "$operators = [2, 3]; echo add(1, ...$operators);", где add является функцией трёх аргументов;
Ого. А ещё они научились разворачивать списки. Почему мне это напоминает запятую? (Окей, не придирайтесь - ,@)
Может быть подбросить разработчиком PHP книжку какую... SICP, например, или PCL? Они там ещё много идей почерпнут.
> Возможность использования оператора use для импорта функций и констант, в дополнение к импорту классов.
Просветлятся, например, как require реализовывать надо...
| |
|
2.7, Аноним (-), 00:39, 29/08/2014 [^] [^^] [^^^] [ответить]
| +1 +/– |
Судя по коммитам в мастер (он же php7), книжки недавно почитали. Например, вместо бизоновских регулярок, плюющихся опкодами на лету как попало, сделали AST.
Лет через 5, кажись, будет что-то похожее на настоящее.
| |
|
3.19, йцу (?), 09:33, 29/08/2014 [^] [^^] [^^^] [ответить]
| +/– |
Раньше. 7 планируют через пару лет, и он уже точно будет включать Uniform Variable Syntax, phpng-оптимизации, AST.
| |
3.57, Sabakwaka (ok), 00:07, 30/08/2014 [^] [^^] [^^^] [ответить]
| +1 +/– |
> Судя по коммитам в мастер (он же php7), книжки недавно почитали. Например,
> вместо бизоновских регулярок, плюющихся опкодами на лету как попало, сделали AST.
> Лет через 5, кажись, будет что-то похожее на настоящее.
Через пять лет тя кремируют уже.
| |
|
2.47, angra (ok), 17:52, 29/08/2014 [^] [^^] [^^^] [ответить]
| +/– |
Можно вообще-то вспомнить Perl, на котором php основывался и в котором все это было пару десятилетий назад.
| |
|
1.8, Аноним (-), 01:38, 29/08/2014 [ответить] [﹢﹢﹢] [ · · · ]
| +3 +/– |
Годы идут, а по-прежнему NULL < -1, NULL == 0, "666" == "0666", "1e3" == "1000", а деление на ноль - warning.
Прочие WTF'ы не проверял, но уверен, что они на месте.
| |
|
|
|
4.40, анонимус (??), 15:44, 29/08/2014 [^] [^^] [^^^] [ответить]
| +/– |
Я конечно с вами согласен что php ужасен. Чего только стоит function foo($x, $x){//...} Но все-же справедливости ради стоит отметить что половина того что там написано уже не актуально.
| |
|
|
2.11, Анонизм (?), 05:24, 29/08/2014 [^] [^^] [^^^] [ответить]
| +/– |
А как люди живут со всем этим? Вот как, например, проверить строку на равенство "1e3" и неравенство "1000"? Или, более жизненно, численную переменную, что она равна нулю, но не NULL?
| |
|
3.13, Ананасус (?), 07:13, 29/08/2014 [^] [^^] [^^^] [ответить]
| +3 +/– |
Очевидно, использовать тройное равенство. Оно исключает приведение типов.
>Вот как, например, проверить строку на равенство "1e3" и неравенство "1000"?
$a === '1e3'; $b !== '1e3'
>Или, более жизненно, численную переменную, что она равна нулю, но не NULL?
$c === 0
| |
|
4.50, Анонизм (?), 18:15, 29/08/2014 [^] [^^] [^^^] [ответить]
| +/– |
> Очевидно, использовать тройное равенство. Оно исключает приведение типов.
Тогда в чём проблема?
| |
|
5.52, Аноним (-), 20:20, 29/08/2014 [^] [^^] [^^^] [ответить]
| +1 +/– |
Ну обкакать же пых хочется. А тут такая возможность - дёшево и сердито
| |
|
|
3.18, Аноним (-), 09:31, 29/08/2014 [^] [^^] [^^^] [ответить]
| +2 +/– |
use ===, Luke.
php > var_dump(0 === NULL);
bool(false)
php > var_dump(0 == NULL);
bool(true)
php > var_dump(1e3 === 1000);
bool(false)
php > var_dump(1e3 == 1000);
bool(true)
| |
|
|
3.26, Аноним (-), 11:13, 29/08/2014 [^] [^^] [^^^] [ответить]
| +/– |
Как строгое сравнение поможет с первыми двумя проблемами, делающими результат сортировки массива зависящим от порядка сравнения элементов?
| |
|
4.27, йцу (?), 11:27, 29/08/2014 [^] [^^] [^^^] [ответить]
| +/– |
Я сказал "большинство проблем", а не "все".
Если вас не устраивает результат при сравнении целого с null, то можете определить какое-угодно поведение, благо проверить тип переменной не составляет труда.
| |
|
5.28, Аноним (-), 11:43, 29/08/2014 [^] [^^] [^^^] [ответить] | +1 +/– | Как это поможет исправить проблему, связанную с тем, что сортировка массива встр... большой текст свёрнут, показать | |
|
6.30, йцу (?), 12:39, 29/08/2014 [^] [^^] [^^^] [ответить]
| –1 +/– |
Для таких случаев передается второй аргумент (SORT_NUMERIC, SORT_STRING, etc). По-умолчанию используется SORT_REGULAR (без преобразования типов) и результат сортировки значений разных типов может быть непредсказуемым (о чем так же ясно сказано в документации).
+ usort в сочетании с лямбдами позволяет определить какое угодно условие сравнение.
Короче, rtfm.
| |
|
7.32, Аноним (-), 13:00, 29/08/2014 [^] [^^] [^^^] [ответить]
| +/– |
Ты крайне наивен, если думаешь, что SORT_NUMERIC делает порядок детерминированным.
asort(array(1,-1,0,NULL,2,0,-2))
Array
(
[6] => -2
[1] => -1
[5] => 0
[3] =>
[2] => 0
[0] => 1
[4] => 2
)
asort(array(NULL,-1,0,1,2,-2, 0))
Array
(
[5] => -2
[1] => -1
[6] => 0
[2] => 0
[0] =>
[3] => 1
[4] => 2
)
asort(array(0,1,-1,0,-2,2,NULL))
Array
(
[4] => -2
[2] => -1
[6] =>
[3] => 0
[0] => 0
[1] => 1
[5] => 2
)
К тому же, если делать RTFM, полезнее тратить время и силы на изучение вменяемых языков, а не этого грабельного поля.
| |
|
8.33, йцу (?), 13:31, 29/08/2014 [^] [^^] [^^^] [ответить] | –1 +/– | Нет Просто если SORT_NUMERIC подразумевает приведение значения к числу при срав... текст свёрнут, показать | |
|
9.34, Аноним (-), 13:40, 29/08/2014 [^] [^^] [^^^] [ответить] | +1 +/– | для сортировки массива чисел Не, я не готов принимать столько упорина Для срав... текст свёрнут, показать | |
|
10.38, йцу (?), 14:30, 29/08/2014 [^] [^^] [^^^] [ответить] | +1 +/– | Для сортировки массива с _разными типами данных_ Вы действительно не видите раз... текст свёрнут, показать | |
|
|
12.62, йцу (?), 13:13, 30/08/2014 [^] [^^] [^^^] [ответить] | +1 +/– | Тогда зачем вы приводите этот алгоритм в качестве аналога Ещё раз если мы явн... текст свёрнут, показать | |
|
|
|
|
|
|
|
|
|
|
|
1.10, Анонизм (?), 05:18, 29/08/2014 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
> добавлены константные скалярные выражения, функции с переменным числом аргументов, ... оператор возведения в степень
Facepalm. Если этого не было и добавлено только сейчас. Жесть.
| |
|
2.14, Ананасус (?), 07:20, 29/08/2014 [^] [^^] [^^^] [ответить]
| +/– |
>константные скалярные выражения
Было, define(ONE, 1);
Но тут скорее аналог не сишных констант, а сишных макросов.
>оператор возведения в степень
Было, функция pow. Теперь сделали и оператор.
>функции с переменным числом аргументов
Не знаю, не пользовался. Не могу придумать кейс, при котором это было бы полезно. Опциональных аргументов и массивов в качестве параметров более чем достаточно.
| |
|
3.15, AlexAT (ok), 08:25, 29/08/2014 [^] [^^] [^^^] [ответить]
| +1 +/– |
>функции с переменным числом аргументов
Было, но не так удобно - приходилось аргументы выцарапывать через func_get_args / func_num_args + func_get_arg, плюс эти функции возвращали _все_ переданные аргументы. Самая мякотка ...$args в том, что $args не включает эксплицитных аргументов.
| |
3.49, angra (ok), 18:09, 29/08/2014 [^] [^^] [^^^] [ответить]
| +/– |
> Не знаю, не пользовался. Не могу придумать кейс, при котором это было
> бы полезно.
Людям, которые не ели ничего слаще морковки, очень сложно сходу придумать применение сахару. Например, им не приходит в голову, что сахар можно класть в чай, ведь с морковкой подобное было бы глупо.
Ничего лет через пять будете удивляться, как вы без этого обходились. И еще на шаг приблизитесь к пониманию причин, по которым вас жалеют.
| |
|
4.63, cmp (ok), 13:48, 30/08/2014 [^] [^^] [^^^] [ответить]
| +/– |
Обходились, и обойдемся впреть.
С трудом представляю ситуацию когда функции "действительно необходимо" самостоятельно разбирать свои аргументы, если вас обламывает запихнуть опциональные аргументы в массив, это ваши трудности, зато код значительно более читаем, так что сомнительная "инновация", добавленная в угоду питоноупоротых.
| |
4.64, Ананасус (?), 16:15, 30/08/2014 [^] [^^] [^^^] [ответить]
| +/– |
> Вместо приведения кейса, я перейду на личности и ещё раз пёрну в лужу
Ок, твои доводы мне ясны
| |
|
|
|
1.16, sorrymak (ok), 09:05, 29/08/2014 [ответить] [﹢﹢﹢] [ · · · ]
| +1 +/– |
> Добавлен новый математический оператор "**", применяемый для возведения в степень
Не прошло и 19 лет... Или прошло?
| |
|
2.22, йцу (?), 09:45, 29/08/2014 [^] [^^] [^^^] [ответить]
| +1 +/– |
Серьёзно? Вам настолько не хватало этого?
> Не прошло и 19 лет... Или прошло?
В Си уже 40 лет без него как-то обходятся. В Java — лет двадцать. И в половине других языков. Может вы всё-таки преувеличиваете ценность этой фичи?
| |
|
3.25, Anonimous (?), 10:43, 29/08/2014 [^] [^^] [^^^] [ответить]
| +1 +/– |
Всем, кому вкладывали на основах программирование конструкцию "a^b" очень-очень не хватало этого математического оператора. Хотя мне сильнее не хватало sqr/sqrt, хоть я уже 20 лет не считаю себя программистом, но в 75% так называемых калькуляторов до сих пор нет кнопки извлечения корня, не говоря уже о возведении в степень - думаю, как раз из-за отсутствия простых реализаций в тех языках, на которых эти калькуляторы написаны.
| |
|
4.31, йцу (?), 12:43, 29/08/2014 [^] [^^] [^^^] [ответить]
| +/– |
О каких "калькуляторах" речь? Я, наверное, не до конца вас понимаю, но написание калькуляторов — это не самый стандартный кейс для PHP. Или нет?
| |
|
5.36, Xasd (ok), 13:42, 29/08/2014 [^] [^^] [^^^] [ответить]
| –4 +/– |
> написание калькуляторов — это не самый стандартный кейс для PHP
вот щаз я так и представил -- реализацию калькулятора как web-страничка (без Javascript)...
...и каждая кнопка (и цифры и операции) это анкорная ссылка вида ---
< a href="?...">...</a>
:-)
да, PHP-программисты такое могут, и они наверняка даже не заподозрять ни чего неладного в этом :)
| |
|
6.37, Аноним (-), 14:09, 29/08/2014 [^] [^^] [^^^] [ответить]
| +3 +/– |
>они наверняка даже не заподозрять ни чего неладного в этом :)
Угу, точно так же, как ты до сих пор не заподозрил ничего неладного в орфографии.
| |
|
7.39, Xasd (ok), 14:40, 29/08/2014 [^] [^^] [^^^] [ответить]
| –1 +/– |
>>они наверняка даже не заподозрять ни чего неладного в этом :)
> Угу, точно так же, как ты до сих пор не заподозрил ничего
> неладного в орфографии.
именно так. да. хорошее сравнение! :-)
| |
|
|
|
|
3.51, angra (ok), 18:19, 29/08/2014 [^] [^^] [^^^] [ответить]
| +/– |
А в других _скриптовых_ языках этот оператор есть. И в пых его в конечном итоге добавили. Значит таки он был нужен в языке с самого начала. Как и множество других фич. Это очень смешно наблюдать как пых реализует постепенно вещи, которые давно есть в языках, существовавших до его рождения. Сначала быдлокодерам выкатили примитивный язык, а теперь потихоньку(чтобы не перегрелись мозги ЦА) доводят язык до нормального.
| |
|
4.54, Xasd (ok), 22:12, 29/08/2014 [^] [^^] [^^^] [ответить]
| –1 +/– |
а когда разработчики-PHP собираются доводить PHP -- до ситуации когда каждый HTTP-запрос не будет поновой (поновой каждый раз) вычислять декларацию классов?
допустим я в PHP-файлах задекларировал 200 классов, и в каждом HTTP-запросе использую несколько классов (не все сразу, но разные в зависимости от ситуации).
то есть -- мне нужно чтобы некоторая часть PHP-кода -- вычислялась бы ТОЛЬКО один раз (при старте HTTP-сервера) , а во время дальнейших HTTP-запросов уже использовалось бы то состояние которое УЖЕ было вичислено тот 1 раз (а не вычислялось бы каждый раз поновой).
| |
|
|
6.59, Xasd (ok), 01:26, 30/08/2014 [^] [^^] [^^^] [ответить]
| +/– |
> http://daemon.io/
интерфейс совместимый с апачевским mod_fcgid -- тут есть? или это просто поделка, которая сама-в-себе и слабо связанна с Apache HTTP Server ?
(поумолчанию в качестве нормальной работы -- апачевский mod_fcgid передаёт fastcgi-демону сокетный объект как файловый дескриптор с номером 1 .. БЕЗ всяких-там "/tmp/phpdaemon.fcgi.sock". это считается штатной и качественной ситуацией, так mod_fcgid может (и должен!) запускать одновременно несколько экземпляров fastcgi-демонов, и эти fastcgi-демоны не должны друг другу мешаться)
где документация вообще?
и насколько вся эта система в итоге будет совместима со всякими legacy-конструкциями типа $_SESSION[...] и $_REQUEST[...] ? (для целей legacy-кода, например "вставить SAPE-ссылки")
если с legacy получается облом -- то зачем тогда вообще терпеть этот PHP ? PHP бесполезен без Legacy, так как проще взять https://pypi.python.org/pypi/flipflop и https://pypi.python.org/pypi/bottle :-)
| |
|
|
|
|
|
1.41, userd (ok), 15:54, 29/08/2014 [ответить] [﹢﹢﹢] [ · · · ]
| +1 +/– |
В описании оператора ** трогательно обойдён вопрос ассоциативности.
Как вы думаете, 2**1**2 вернёт 2 или 4?
| |
|
2.60, Аноним (-), 09:08, 30/08/2014 [^] [^^] [^^^] [ответить]
| –1 +/– |
> Как вы думаете, 2**1**2 вернёт 2 или 4?
<troll>Думаю, вернёт 3 -- это же PHP.</troll>
| |
2.61, бедный буратино (ok), 12:08, 30/08/2014 [^] [^^] [^^^] [ответить]
| +1 +/– |
я достаю из широких штанин, дебианом бесценного груза:
> apt-get install php5-cli
> php --version
PHP 5.6.0RC4 (cli) (built: Aug 19 2014 15:27:20)
Copyright (c) 1997-2014 The PHP Group
Zend Engine v2.6.0-dev, Copyright (c) 1998-2014 Zend Technologies
with Zend OPcache v7.0.4-dev, Copyright (c) 1999-2014, by Zend Technologies
php -r 'echo 2**1**2;'
2
мы не думаем, мы знаем...
| |
|
|
|
5.73, Какаянахренразница (ok), 05:13, 02/09/2014 [^] [^^] [^^^] [ответить]
| +/– |
> Степени возводятся справа налево.
При обычной алгебраической записи (двойка, у неё в уголке единица и у единицы в уголке двойка) так бы и было.
Ниже в комментах написали, что доки PHP на эту тему противоречат друг другу. В одном месте написано слева направо, в другом -- наоборот.
| |
|
|
|
|
|
4.72, Led (ok), 01:41, 02/09/2014 [^] [^^] [^^^] [ответить]
| –1 +/– |
> т.е. материалы на сайте противоречивы.
Вы ещё хотите, чтобы т.н. "разработчики" т.н. "языка программирования" PHP различали где "право", а где "лево"? Может они ещё и таблицу умножения должны знать?
Вы слишком многого хотите:)
| |
|
|
|
|