array_key_exists但以对象为键

时间:2016-05-28 03:30:34

标签: php

检查对象是否作为数组键存在的最佳方法是什么?

// key: $obj, array: $array
array_key_exists($obj, $array);

PHP警告中的结果:"第一个参数应为字符串或整数"。

3 个答案:

答案 0 :(得分:6)

我很确定你想要property_exists()

答案 1 :(得分:2)

对象不能是数组的键。

<?php

$x = new stdClass;

$y = [$x => 1]; // PHP Warning:  Illegal offset type

请参阅https://ideone.com/zR2PXd

使用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.