Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Тернарный оператор VS. if-else
Форумы портала PHP.SU » » Вопросы новичков » Тернарный оператор VS. if-else

Страниц (1): [1]
 

1. vlom - 22 Июля, 2011 - 13:49:17 - перейти к сообщению
Возник вопрос, какая запись будет наиболее правильной
PHP:
скопировать код в буфер обмена
  1.  
  2. if($a !== ""){
  3.    //вызываем фукцию
  4. }else{
  5.    //вызываем другую
  6. }
  7.  


или же
PHP:
скопировать код в буфер обмена
  1. $b = ($a !== "") ? вызываем фукцию : вызываем другую;


если применять в таком случае когда в $b нужно занести результат работы функции
да и вообще в принципе что предпочтительнее???
2. Мелкий - 22 Июля, 2011 - 13:58:51 - перейти к сообщению
Без разницы, вопрос религиозных предпочтений.
3. Roler - 22 Июля, 2011 - 14:39:29 - перейти к сообщению
Тернарный оператор обычно используют, чтобы проверку прямо в вывод зафигачить и не разрывать его, и не создавать лишних переменных.
4. EuGen - 22 Июля, 2011 - 14:44:58 - перейти к сообщению
Вопрос спорный, я предпочитаю тернарный, так как это сокращает код и делает его лаконичным. Это, правда, можно превратить в аляпистость:
PHP:
скопировать код в буфер обмена
  1. $foo=$bar?function1($x?$y-$z:function2($w)):function0($baz*$class->{$a?$b:$c});

Так что разумную грань определять тоже нужно уметь.

 

Powered by ExBB FM 1.0 RC1