- 1
- 2
- 3
- 4
- 5
- 6
public function __isset($name) {
return ($this->getOption(xPDO::OPT_HYDRATE_FIELDS) && array_key_exists($name, $this->_fields) && isset($this->_fields[$name]))
|| ($this->getOption(xPDO::OPT_HYDRATE_RELATED_OBJECTS)
&& ((array_key_exists($name, $this->_composites) && isset($this->_composites[$name]))
|| (array_key_exists($name, $this->_aggregates) && isset($this->_aggregates[$name]))));
}
Lowezar 22.06.2013 10:59 # +1
Agel_Nash 22.06.2013 11:01 # 0
bormand 22.06.2013 12:49 # +3
В первом случае isset вернет FALSE, т.к. Returns TRUE if var exists and has value other than NULL, FALSE otherwise. Во втором случае array_key_exists вернет true, но isset опять вернет false.
Что вы хотели показать этим примером? То, что array_key_exists в данном контексте действительно лишний? :)
Agel_Nash 22.06.2013 14:12 # −1
Lowezar 22.06.2013 16:21 # +1
Agel_Nash 22.06.2013 18:21 # 0
bormand 22.06.2013 19:34 # +4
Эм. Что вы до него докопались? Он же так и написал в своем первом комменте - "array_key_exists везде лишнее". Вы где-то видите, что он оправдывает связку array_key_exists + isset?
ГК это то место, где даже люди с одинаковым мнением умудряются спорить друг с другом :)
deep 22.06.2013 22:01 # 0
Если значение ключа массива обязательно ожидается не равным null, то такая проверка очень даже оправдана. Где isset должно проверяться обязательно во вторую очередь. Хотя я вместо isset юзал бы конструкцию: !== null
Stallman 23.06.2013 11:21 # 0
bormand 23.06.2013 11:43 # +1
Stallman 23.06.2013 12:38 # +1