Обработка условного оператора и его оптимизация

IvanShumkov

Новичок
Обработка условного оператора и его оптимизация

Подскажите как PHP выполняет опретор if на примере:
PHP:
$var = array('Hi', 'man');
if (isset($var) && in_array('man', $var)) {}
Моя догадка:
Сначала выполняется функция isset потом выполняется функция in_array, если обе вернули true то и if возвращает true.

В целях оптимизации может правильней писать так?
PHP:
if (isset($var)) if (in_array('man', $var)) {}
 

Profic

just Profic (PHP5 BetaTeam)
1) Это не то место где нужно оптимизировать. В коде стопроцентно есть более тормозные вещи и запросы.
2) Преждевременная отмизация - зло.
3) Эффект будет нулевой, если вообще не отрицательный.
 

WMix

герр M:)ller
Партнер клуба
не оптимизированно писать так

if (isset(array('Hi', 'man')) && in_array('man', array('Hi', 'man'))) {}
на одну переменную место сэкономиш!! ;)
 

Crazy

Developer
Re: Обработка условного оператора и его оптимизация

Автор оригинала: IvanShumkov
Моя догадка
Не надо маяться хе[...]рней. Надо читать документацию, где четко и ясно сказано, как работает &&.

Код:
<?php

function foo() {
  echo '[foo called]';
  return false;
}

function bar() {
  echo '[bar called]';
  return true;
}

if (foo() && bar()) {
  echo 'Ok';
}

?>
 

DiTHER

bang bang
if (isset($var) && in_array('man', $var)) {}
если isset то проверяем in_array. Если in_array, то идём в скобки (нет смысла проверять второе условие, если уже не прошло первое, ведь правда?)

if (isset($var)) if (in_array('man', $var)) {}
если isset то проверяем следующий if (in_array). Если in_array то идём в скобки

не одно ли и тоже? Почти, ибо первый лучше.

попробуй
PHP:
if(isset($a) && $b == 'non_existent_variable') {}

$a = 'some_value';
if(isset($a) && $b == 'non_existent_variable') {}
во втором случае будет сгенерирована ошибка о том что переменная не существует. В первом - нет.
 
Сверху