Эти выражения идентичны? что является более эффективным?
Выражение 1:
$a = 'default'
if($b != "") $a = $b;
Выражение 2:
$a = $b == "" ? "default" : $b;
Есть ли $ а держать одинаковый результат в обоих случаях?
Вы можете легко протестировать небольшие фрагменты PHP в командной строке, запустив их в интерактивном режиме:
$ php -a
Здесь вы можете написать свой код:
$a = "test";
$b = $a;
$b = $b == "" ? "default" : $b;
var_dump($b);
$c = $a == "" ? "default" : $a;
var_dump($c);
Это должно быть то же самое — но я бы пошел на выражение 2.
Я бы написал это так:
$this->a = ($r[0] == "") ? "default" : $r[0];
Все зависит от ситуации в руках. Оба варианта действительны, но для нескольких сценариев этот более быстрый и эффективный.
$a = $b == "" ? "default" : $b;