Они не одинаковы. Рассмотрим условный массив:
$arr = array(
'a' => false,
'b' => 0,
'c' => '',
'd' => array(),
'e' => null,
'f' => 0.0,
);
Предполагая, что $x
- это один из этих ключей (от 'a' до 'f') и ключ 'g', которого там нет, он работает так:
$arr[$x]
- это false
для всех клавиш от a до g;
isset($arr[$x])
- это true
для клавиш a, b, c, d и f, но false
для e и g; и
array_key_exists($x, $arr)
- это true
для всех клавиш от a до f, false
для г.
Я предлагаю вам взглянуть на жонглирование типов PHP , в частности преобразование в логические значения.
Наконец, то, что вы делаете, называется микрооптимизация . Никогда не выбирайте, кто из них будет быстрее. В зависимости от того, что быстрее, разница настолько незначительна, что никогда не может быть фактором, даже если бы вы могли надежно определить, что быстрее (а я не уверен, что вы могли бы достичь любого статистически значимого уровня).