static zend_never_inline uint32_t ZEND_FASTCALL zend_array_key_exists_slow(zval *subject, zval *key OPLINE_DC EXECUTE_DATA_DC)
{
if (EXPECTED(Z_TYPE_P(subject) == IS_OBJECT)) {
+ zend_error(E_DEPRECATED, "array_key_exists(): "
+ "Using array_key_exists() on objects is deprecated. "
+ "Use isset() or property_exists() instead");
+
HashTable *ht = zend_get_properties_for(subject, ZEND_PROP_PURPOSE_ARRAY_CAST);
uint32_t result = zend_array_key_exists_fast(ht, key OPLINE_CC EXECUTE_DATA_CC);
zend_release_properties(ht);
var_dump(isset($b['no_exists'])); //false
var_dump(empty($b['b'])); //true
var_dump(empty($b[37])); //true
---EXPECT--
+--EXPECTF--
bool(false)
bool(false)
bool(false)
bool(false)
bool(true)
bool(true)
+
+Deprecated: array_key_exists(): Using array_key_exists() on objects is deprecated. Use isset() or property_exists() instead in %s on line %d
bool(true)
NULL
bool(true)
ht = Z_ARRVAL_P(array);
} else {
ht = zend_get_properties_for(array, ZEND_PROP_PURPOSE_ARRAY_CAST);
+ php_error_docref(NULL, E_DEPRECATED,
+ "Using array_key_exists() on objects is deprecated. "
+ "Use isset() or property_exists() instead");
}
switch (Z_TYPE_P(key)) {
bool(false)
*** Testing operation on objects ***
+
+Deprecated: array_key_exists(): Using array_key_exists() on objects is deprecated. Use isset() or property_exists() instead in %s on line %d
bool(false)
+
+Deprecated: array_key_exists(): Using array_key_exists() on objects is deprecated. Use isset() or property_exists() instead in %s on line %d
bool(false)
+
+Deprecated: array_key_exists(): Using array_key_exists() on objects is deprecated. Use isset() or property_exists() instead in %s on line %d
bool(true)
+
+Deprecated: array_key_exists(): Using array_key_exists() on objects is deprecated. Use isset() or property_exists() instead in %s on line %d
bool(false)
+
+Deprecated: array_key_exists(): Using array_key_exists() on objects is deprecated. Use isset() or property_exists() instead in %s on line %d
bool(true)
bool(true)
+Deprecated: array_key_exists(): Using array_key_exists() on objects is deprecated. Use isset() or property_exists() instead in %s on line %d
+
Warning: array_key_exists(): The first argument should be either a string or an integer in %s on line %d
bool(false)
Done
echo "Done";
?>
---EXPECT--
+--EXPECTF--
*** Testing array_key_exists() : object functionality ***
-- Do not assign a value to $class1->var3 --
$key = var1:
+
+Deprecated: array_key_exists(): Using array_key_exists() on objects is deprecated. Use isset() or property_exists() instead in %s on line %d
bool(true)
$key = var3:
+
+Deprecated: array_key_exists(): Using array_key_exists() on objects is deprecated. Use isset() or property_exists() instead in %s on line %d
bool(true)
$class1:
object(myClass)#1 (3) {
-- Assign a value to $class2->var3 --
$key = var3:
+
+Deprecated: array_key_exists(): Using array_key_exists() on objects is deprecated. Use isset() or property_exists() instead in %s on line %d
bool(true)
$class2:
object(myClass)#2 (3) {
echo "Done";
?>
---EXPECT--
+--EXPECTF--
*** Testing array_key_exists() : object functionality ***
-- Do not assign a value to $class1->var3 --
$key = var1:
+
+Deprecated: array_key_exists(): Using array_key_exists() on objects is deprecated. Use isset() or property_exists() instead in %s on line %d
bool(true)
$key = var2:
+
+Deprecated: array_key_exists(): Using array_key_exists() on objects is deprecated. Use isset() or property_exists() instead in %s on line %d
bool(false)
$key = var3:
+
+Deprecated: array_key_exists(): Using array_key_exists() on objects is deprecated. Use isset() or property_exists() instead in %s on line %d
bool(false)
$class1:
object(myClass)#1 (3) {
-- Assign a value to $class2->var3 --
$key = var3:
+
+Deprecated: array_key_exists(): Using array_key_exists() on objects is deprecated. Use isset() or property_exists() instead in %s on line %d
bool(false)
$class2:
object(myClass)#2 (3) {