首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

ArrayAccess::offsetExists

(PHP 5 >= 5.0.0, PHP 7)

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

描述

代码语言:javascript
复制
abstract public boolean ArrayAccess::offsetExists ( mixed $offset )

是否存在偏移量。

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

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

参数

offset

要检查的偏移量。

返回值

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

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

示例

Example #1 ArrayAccess::offsetExists() example

代码语言:javascript
复制
<?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"]));
?>

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

代码语言:javascript
复制
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 →

扫码关注腾讯云开发者

领取腾讯云代金券