(PHP 5 >= 5.0.0, PHP 7)
Whether an offset exists
abstract public boolean ArrayAccess::offsetExists ( mixed $offset )
Whether or not an offset exists.
This method is executed when using isset() or empty() on objects implementing ArrayAccess.
Note:
When using empty() ArrayAccess::offsetGet() will be called and checked if empty only if ArrayAccess::offsetExists() returns
TRUE
.
Parameters:
offset
An offset to check for.
Returns:
Returns TRUE
on success or FALSE
on failure.
Note:
The return value will be casted to boolean if non-boolean was returned.
Examples:
ArrayAccess::offsetExists() example
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | <?php class obj implements arrayaccess { public function offsetSet( $offset , $value ) { var_dump( __METHOD__ ); } public function offsetExists( $var ) { var_dump( __METHOD__ ); if ( $var == "foobar" ) { return true; } return false; } public function offsetUnset( $var ) { var_dump( __METHOD__ ); } public function offsetGet( $var ) { var_dump( __METHOD__ ); return "value" ; } } $obj = new obj; echo "Runs obj::offsetExists()\n" ; var_dump(isset( $obj [ "foobar" ])); echo "\nRuns obj::offsetExists() and obj::offsetGet()\n" ; var_dump( empty ( $obj [ "foobar" ])); echo "\nRuns obj::offsetExists(), *not* obj:offsetGet() as there is nothing to get\n" ; var_dump( empty ( $obj [ "foobaz" ])); ?> |
The above example will output something similar to:
Runs obj::offsetExists() string(17) "obj::offsetExists" bool(true) Runs obj::offsetExists() and obj::offsetGet() string(17) "obj::offsetExists" string(14) "obj::offsetGet" bool(false) Runs obj::offsetExists(), *not* obj:offsetGet() as there is nothing to get string(17) "obj::offsetExists" bool(true)
Please login to continue.