Я рассмотрел вопросы о тройных операторах и структурах if / else , и, хотя я понимаю, что при нормальных обстоятельствах нет потери / усиления производительности при использовании тернарных операторов над структурами if / else, я не видел упоминания об этом ситуация. Язык, специфичный для PHP (но приветствуются любые агностические данные языка) интерпретатор переназначает значения в […]
Есть ли какой-либо тернарный оператор или тому подобное в PHP, который действует как ?? от C #? ?? в C # чист и короче, но в PHP вы должны сделать что-то вроде: // This is absolutely okay except that $_REQUEST['test'] is kind of redundant. echo isset($_REQUEST['test'])? $_REQUEST['test'] : 'hi'; // This is perfect! Shorter and […]
Привет, я просто хочу знать, почему этот код дает (по крайней мере для меня) неправильный результат. Ну, наверное, я виноват здесь $description = 'Paper: ' . ($paperType == 'bond') ? 'Bond' : 'Other'; Я предполагал, что если paperType равно «Bond», тогда описание «Paper: Bond», и если paperType не равен «Bond», тогда описание «Paper: Other». Но […]
Я хочу преобразовать следующее, if else condition для nested ternary оператора. if ($projectURL) { echo $projectURL; } elseif ($project['project_url']) { echo $project['project_url']; } else { echo $project['project_id']; } Я написал следующее. echo ($projectURL)?$projectURL:($project['project_url'])?$project['project_url']: $project['project_id']; Но он найден как не работает должным образом. Это не правильный путь?
В руководстве по PHP я нахожу следующую «записку, внесенную пользователем» в разделе «Операторы». Заметим, что в php тернарный оператор?: Имеет левую ассоциативность, в отличие от C и C ++, где он имеет правую ассоциативность. Вы не можете писать такой код (как вы уже привыкли на C / C ++): <?php $a = 2; echo ( […]
Я использую тройные операторы много, но я не могу представить несколько тройных операторов внутри друг друга. Я знаю, что укладка нескольких тернарных операторов сделает код менее читаемым, но в некоторых случаях я хотел бы это сделать. Это то, что я пробовал до сих пор: $foo = 1; $bar = ( $foo == 1 ) ? […]
($DAO->get_num_rows() == 1) ? echo("is") : echo("are"); Эта доза, похоже, не работает для меня, как предполагалось, я получаю сообщение об ошибке «Неожиданное T_ECHO». Я ожидаю, что он будет эхом либо «есть», либо «есть». Я пробовал это без скобок вокруг условного. Я просто не могу использовать тернарный оператор таким образом? $DAO->get_num_rows() возвращает целочисленное значение.
Я пытаюсь сократить свой код с помощью тернарного оператора. Это мой оригинальный код: if ($type = "recent") { $OrderType = "sid DESC"; } elseif ($type = "pop") { $OrderType = "counter DESC"; } else { $OrderType = "RAND()"; } Как я могу использовать тернарный оператор в своем коде вместо того, if s / else s? […]
Простой вопрос, простой код. Это работает: $x = &$_SESSION['foo']; Это не означает: $x = (isset($_SESSION['foo']))?&$_SESSION['foo']:false; Он выдает PHP Parse error: syntax error, unexpected '&' . Нельзя ли передавать по ссылке при использовании условного оператора, а почему бы и нет? Также случается, если между пробелом есть пробел ? и & .
Почему эта печать 2? echo true ? 1 : true ? 2 : 3; По моему мнению, он должен печатать 1. Почему он работает не так, как ожидалось?