gpt4 book ai didi

php - php中的kill方法链

转载 作者:行者123 更新时间:2023-12-03 02:46:01 25 4
gpt4 key购买 nike

嗨,我在 php 中有一个方法链,有点像

<?php
auth::('username') -> is_logged() -> doSomething();
//execute something
?>

我想做的是,如果用户未登录,则不调用 doSomething() 函数。一种方法是取消设置 $this,但这会在任何其他方法中生成错误 ID。另外,我不能使用 die(),因为它会停止编译器并阻止之后编写的代码执行。最好的方法是什么,最好没有任何警告或错误,同时由于与该类相关的大量函数而尽可能少地进行更改。

最佳答案

返回NullObject这将提供 doSomething 的空实现

在 PHP 中,您只需要提供神奇的 __call() 方法,因此任何函数调用都会通过。

class NullObject {
public function __call($name, $arguments) {
return $this;
}
}

要在类里面使用它:

public function is_logged() {
if ($this->user_is_logged()) {
return $this;
} else {
return new NullObject;
}
}

关于php - php中的kill方法链,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24715657/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com