Как стать автором
Обновить

Комментарии 25

Получается, что изобрели JSовский оператор || и назвали его Null Coalesce Operator.
Причем тут оператор ||? Просто в JS. можно обращаться к несуществующим элементам массива/обьекта получая в результате undefined коротрый кастится к false а в PHP получится warning и вернет null поэтому в теории || должен аналагично работать и в PHP.
В PHP expr1 || expr2 возвращает булево значение. В JS expr1 || expr2 возвращает значение первого выражения если оно может быть преобразовано к true, иначе значение второго выражения. Т.е. выражение 5 || 7 в PHP вернёт true, а в JS5.

Но когда реализуют, станет возможно писать так в PHP 5 ?? 7 и получать 5, а не true.

developer.mozilla.org/ru/docs/Web/JavaScript/Reference/Operators/Logical_Operators
Это ?: и он уже давно есть
$data = [];
isset($data['foo']) ? $data['foo'] : 'bar'; // нету варингов
$data['foo'] ? : 'bar'; // Варнинг, если error reporting level позволяет
$data['foo'] ?? 'bar'; // 'bar'

Если прочитать то сообщение, на которое я ответил, то там говорилось именно об ?: выражении. ?? — это абсолютно то же самое, только оно также сделает isset проверку для первого (но не второго, в отличии от жс) аргумента.
Там говорилось о разнице между || и ?: как раз таки и в частности разница в том, как js ведет себя в случае отсутствия запрашиваемого свойства. В этом собственно и отличие, и именно по этому ?: не может заменить ||. А вот ?? — полный аналог в контексте PHP.
Это свойство не жс-ного ||, а того, что в жс можно обращаться к несуществующим свойствам объектов/элементам массива и не получать ошибку
Да, вы определённо правы. Как-то только сейчас до меня дошло это.
Жаль я показал свое невежество. В действительности Null Coalesce Operator придумали не разработчики PHP.

Кстати, как указанно по ссылке выше, в JS это не совсем Null coalesing operator (если кто-нибудь переведёт на русский, то я буду благодарен), потому что там идёт проверка не на null, а на false. Собственно в PHP будет также.

И ещё одно. PHP многие осуждают за то, что ассоциативность тернарного оператора не такая как у всех. Зато как гармонично из него получилось вот такое «или».
Добавлю немного от себя: Официально запущен перевод документации PHP на Украинский язык. Ребята уже проделали огромную работу.
НЛО прилетело и опубликовало эту надпись здесь
PHP всегда был языком с низким порогом входа. Все мы с вами были когда-то быдлокодерами, все с чего-то начинали. Именно доступность документации на родном языке, позволит какому-нибудь 13 летнему школьнику, не знающему английский, создать свою быдлостраничку в интеренете, а к 25 годам обеспечивать всю семью и быть сеньйором помидором в крупной компании. И никак не помешает ему выучить английский язык и использовать документацию в оригинале. Или вы никогда не писали $d и $f вместо $dir и $file_name? Не ставили собачку, чтобы не было нотиса? Сразу писали идеальный код?
И не путайте PHP с 1C, в документации нет примеров с таким бредом как "$schet = $klient * dengi;", переменные там названы как надо, а на русском только комментарии и сама документация.
Те кто начинает совсем-совсем с нуля скорее начнут с каких-нибудь туториалов, либо книжек, их написано предостаточно на разных языках.
> на русском только комментарии и сама документация

так на русском или на украинском?
А еще как минимум: Brazilian Portuguese, Chinese, French, German, Italian, Japanese, Romanian, Spanish, Turkish
Соглашусь с vlreshet. Мы с вами просто в другое время росли, когда на английский так не налегали. Сейчас уже во многих садиках есть курсы английского, с 1-2 класса школы идет активное изучение, а к 2020 иностранный язык может стать обязательным в ЕГЭ. У меня ребенок в 2.5 года знает английский алфавит и цифры, несколько десятков слов, хотя специально мы с ним не занимались.
НЛО прилетело и опубликовало эту надпись здесь
Я полагаю Irker говорит о том случае, когда PHP первый изучаемый язык программирования. Было бы странно, я считаю, изучать последовательно разные языки и поначалу в каждом быдлокодить. Как правило, только первый блин комом, а далее уже проще и понятнее.
Или кажется, что проще и понятней, а на самом деле языки с противоположными парадигмами и идеологиями.
Мне одному не понятно зачем? Перевести немного документации, отвечающей за основы типа циклов и условий — да. Для остального — есть оригинал на английском. Просто потом получаются быдлокодеры совершенно не знающие английского, и пишущие код типа "$schet = $klient * dengi;".

Скажу честно — английский знаю отлично, но доки, тот же php.net, если есть такая возможность, читаю на русском. Мне капельку удобнее, ну и на качество кода это никак не влияет.
По-моему на качество кода, в основном, влияет понимание материала, а не язык на котором ты его читал. И если люди на родном языке понимают документацию немного лучше — код будет немного правильнее ;)
А как в phpmetrics оценивают Maintenability Index? Что-то в моих проектах он маленький, хотя удобство поддержки «много лет спустя» стоит буквально на первом месте среди прочих критериев разработки.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий