在线文档教程
PHP
类和函数 | Classes and Functions

ArrayAccess::offsetExists

ArrayAccess::offsetExists

(PHP 5 >= 5.0.0, PHP 7)

ArrayAccess::offsetExists - 是否存在偏移量

描述

abstract public boolean ArrayAccess::offsetExists ( mixed $offset )

是否存在偏移量。

在实现ArrayAccess的对象上使用isset()或empty()时,会执行此方法。

注意:使用empty()时,只有在ArrayAccess::offsetExists()返回时,才会调用ArrayAccess::offsetGet()返回TRUE,并检查是否为空。

参数

offset

要检查的偏移量。

返回值

成功时返回TRUE或失败时返回FALSE

注意:如果返回非布尔值,则返回值将被转换为布尔值。

示例

Example #1 ArrayAccess::offsetExists() example

<?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"]) ?>

上面的例子会输出类似于:

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)

← ArrayAccess

ArrayAccess::offsetGet →