gpt4 book ai didi

PHP __call 与 method_exists

转载 作者:IT王子 更新时间:2023-10-29 00:04:13 24 4
gpt4 key购买 nike

我正在处理的项目包含类似于 call_user_func(_array) 的包装器,它在执行前进行一些检查。其中一项检查是 method_exists(如果提供的第一个参数是类的实例,第二个是方法名称)另一个是_callable。如果其中一项检查失败,该函数将抛出异常。

我的代码包含一个带有函数名称(setFoo、setBar 等)的数组和用于重载的 php 魔法函数 (__call),它处理某些变量(最好是某些数组元素)的设置、替换和删除。

问题:如果函数未定义,method_exists 将返回 false。

如果 __call 函数正确处理请求,我是否有机会获得 true?

最佳答案

__call 处理对不存在的方法的调用。 method_exists 是一种检查方法是否存在的内省(introspection)方法。

如何确定__call来处理一个方法?我认为如果不处理您的请求,您必须在 __call 中手动抛出异常,并在代码中捕获异常,否则将使用 method_existsBadMethodCallException为此目的而存在。

关于PHP __call 与 method_exists,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1505696/

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