Говоря о PHP, я хотел бы спросить, есть ли разница в производительности между этими двумя:Стенография, если потом еще производительность/оптимизация PHP
$name=($IsBoy)?"George":"Mary";
против
if($IsBoy)
{
$name="George";
}
else
{
$name="Mary";
}
Повлияют ли эти два на другой код операции?
Если да, то был бы любой теоретической разницы в производительности? (конечно, игнорировать время, когда эти два должны быть прочитаны/скомпилированы/интерпретированы)
Если, да, то оптимизаторы, такие как оптимизатор zend, могут воспользоваться этим и автоматически выполнять какие-либо переустройства?
p.s. если вы считаете, что мой код для «full-longhand» if-then-else слишком сложный, пожалуйста, укажите пример самого базового кода и ответьте на это.
UPDATE:
Я надеялся, что этот вопрос совершенно ясен, но кажется, что люди не получают сообщение. Этот вопрос о ТЕОРЕТИЧЕСКАЯ (... еще реален и mesaureable) Разница в производительности (вот почему я примененные смелое и курсивного в теоретические). Пожалуйста, не отвечайте, говоря, что стиль программирования более читабельен и что это слишком раздражает, чтобы беспокоиться о производительности.
p.s. 2: уделив особое внимание теоретическому слову, я стараюсь предотвратить ответы типа «не беспокойтесь, что это не стоит проблем, его просто наносекунды».
Я не знаю, для какой-либо определенности, но мое предположение я при отсутствии реальной разницы в производительности между ними, и если это будет микро-оптимизация, о которой вы не должны беспокоиться. – chrislondon
Вы можете проверить это: http://fabien.potencier.org/article/48/the-php-ternary-operator-fast-or-not – vitozev
Статья Фабьена в значительной степени соответствует моим собственным наблюдениям; хотя приятно видеть объяснение о том, почему –