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 →