Привет, я предлагаю вам прочитать документацию, так как все там
http://php.net/manual/en/language.operators.logical.php
http://php.net/manual/en/language.operators.precedence.php
И
http://php.net/manual/en/language.operators.comparison.php#language.operators.comparison.ternary
Насколько я понимаю, основное отличие заключается в порядке приоритета, однако я считаю, что это редко (никогда) не является реальной проблемой, поскольку я никогда не смешиваю их. Даже тогда есть этот бит
Приоритет операторов и ассоциативность определяют только то, как группируются выражения, они не определяют порядок вычисления.
Что, если я правильно думаю, имеет отношение только к тому, как интерпретатор PHP их видит, и действительно не имеет Беринга в пользовательском коде.
Что касается производительности, то влияние настолько мало, что его вообще не существует, есть много, много других вещей, которые могут оказать реальное влияние на производительность, например, структура и количество запросов к базе данных, кэширование объектов при зацикливании вместо создания новых. экземпляр и т. д., что будет иметь гораздо большее влияние.
Лично я предпочитаю использовать тернарные операторы при проверке значений, которые не установлены, и установке значений по умолчанию. Рассмотрим этот пример
if( isset( $_POST['date'] ){
$date = $_POST['date'];
}else{
$date = date('Y-m-d');
}
Вместо использования тернарного
$date = ( isset( $_POST['date'] ) ? $_POST['date'] : date('Y-m-d');
Тернар намного чище, ИМО, но на самом деле это вопрос личных предпочтений.
person
ArtisticPhoenix
schedule
08.09.2014
?:
иor
ведут себя по-разному, если первый операнд является ложным значением? Если да, то как? - person Felix Kling   schedule 08.09.2014