检查对象是否作为数组键存在的最佳方法是什么?
// key: $obj, array: $array
array_key_exists($obj, $array);
PHP警告中的结果:"第一个参数应为字符串或整数"。
答案 0 :(得分:6)
我很确定你想要property_exists()
答案 1 :(得分:2)
对象不能是数组的键。
<?php
$x = new stdClass;
$y = [$x => 1]; // PHP Warning: Illegal offset type
使用ArrayAccess
界面可以得到一些看起来像对象的奇怪东西,但是array_key_exists
不起作用。
答案 2 :(得分:0)
if(isset($obj->a))
http://php.net/manual/en/function.isset.php
if the property exists, but is not defined isset() will return false.