Жаль я показал свое невежество. В действительности Null Coalesce Operator придумали не разработчики PHP.
Кстати, как указанно по ссылке выше, в JS это не совсем Null coalesing operator (если кто-нибудь переведёт на русский, то я буду благодарен), потому что там идёт проверка не на null, а на false. Собственно в PHP будет также.
И ещё одно. PHP многие осуждают за то, что ассоциативность тернарного оператора не такая как у всех. Зато как гармонично из него получилось вот такое «или».
В PHPexpr1 || expr2 возвращает булево значение. В JSexpr1 || expr2 возвращает значение первого выражения если оно может быть преобразовано к true, иначе значение второго выражения. Т.е. выражение 5 || 7 в PHP вернёт true, а в JS — 5.
Но когда реализуют, станет возможно писать так в PHP5 ?? 7 и получать 5, а не true.
Простите за оффтоп, но если люди отправляют ошибки в ЛС, то как вы можете сравнивать количество таких людей с количеством людей, которые отправляют ошибки через комментарии?
Прошло время, но я всё же напишу. Проблема выше перечисленного способа в том, что не будет работает автодополнение. Поэтому предлагаю некоторое изменение.
abstract class Enum {
static public function __callStatic($name, $arguments){
return new static(constant(get_called_class() . '::' . $name)); // не нужно проверять, php сам кинет ошибку.
}
private $current_val;
private function __construct($value) {
$this->current_val = $value;
}
final public function __toString() {
return $this->current_val;
}
}
Таким образом можно будет написать Enum_Colors::, выбрать константу и дописать скобочки Enum_Colors::RED();
Я о том, что тезис «чем более жизненно- важной является вещь для человека, тем дороже она стоит» не верен.
Мне видится, что, например, шприцы в очень большом количестве случаев. Гораздо чаще, чем стулья-вертикализаторы и гораздо нужнее. При этом стоимость их очень низка.
Я не говорю, что стулья-вертикализаторы не нужны, я том, нет прямой связи между необходимостью и стоимостью.
Я не большой специалист в тонкостях. Но, как мне видится, перпендикулярность в евклидовом пространстве определяется через: две прямые; прямую и плоскость; плоскость и плоскость. Поэтому в евклидовом пространстве меридиан и экватор не перпендикулярны по определению, вернее его отсутствию. Насколько я понимаю, в сферической геометрии меридиан и экватор могут быть перпендикулярны.
Правильно, нужно думать шире. И исполнителю нужно было узнать что подразумевается под перпендикулярностью и когда она может быть не взаимной, чтобы не ошибиться.
По поводу налогов не переживайте. Помогут с деньгами. По решению суда(если дело дойдёт до такого) опечатают имущество и продадут через аукцион для погашения задолженности.
По поводу запутывания тоже не переживайте, уже всё придумано.
Кстати, как указанно по ссылке выше, в JS это не совсем Null coalesing operator (если кто-нибудь переведёт на русский, то я буду благодарен), потому что там идёт проверка не на null, а на false. Собственно в PHP будет также.
И ещё одно. PHP многие осуждают за то, что ассоциативность тернарного оператора не такая как у всех. Зато как гармонично из него получилось вот такое «или».
PHP
expr1 || expr2
возвращает булево значение. ВJS
expr1 || expr2
возвращает значение первого выражения если оно может быть преобразовано кtrue
, иначе значение второго выражения. Т.е. выражение5 || 7
вPHP
вернётtrue
, а вJS
—5
.Но когда реализуют, станет возможно писать так в
PHP
5 ?? 7
и получать5
, а неtrue
.developer.mozilla.org/ru/docs/Web/JavaScript/Reference/Operators/Logical_Operators
||
и назвали егоNull Coalesce Operator
.Таким образом можно будет написать
Enum_Colors::
, выбрать константу и дописать скобочкиEnum_Colors::RED();
Мне видится, что, например, шприцы в очень большом количестве случаев. Гораздо чаще, чем стулья-вертикализаторы и гораздо нужнее. При этом стоимость их очень низка.
Я не говорю, что стулья-вертикализаторы не нужны, я том, нет прямой связи между необходимостью и стоимостью.
По поводу запутывания тоже не переживайте, уже всё придумано.