gpt4 book ai didi

PHP:从数组中调用一个类?

转载 作者:可可西里 更新时间:2023-11-01 13:48:32 25 4
gpt4 key购买 nike

我刚刚为自己构建了一个函数,用于获取 URI 字符串并将其转换为数组,如下所示。此示例基于 http://mydomain.com/mycontroller/mymethod/var

的 URL
Array
(
[0] => mycontroller
[1] => mymethod
[2] => var
)

如果我编写 new $myArray[0];,我将加载 myController 类,但是我可以创建一个函数来处理方法及其它们的最终存在吗用各自的变量调用?

最佳答案

我不确定您所说的“处理方法的最终存在及其各自变量的调用” 是什么意思,但您可能在 call_user_func_array 之后:

call_user_func_array(
array($myArray[0], $myArray[1]),
array($myArray[2])
);

如果您想为使用 $controller = new $myArray(0) 创建的具体实例执行此操作,请将 $myArray[0] 替换为 $ Controller ,例如

$controller = new $myArray(0);
call_user_func_array(
array($controller, $myArray[1]),
array($myArray[2])
);

或者传递new $myArray[0] 如果你不关心实例在调用后丢失

call_user_func_array(
array(new $myArray[0], $myArray[1]),
array($myArray[2])
);

否则你会得到一个 E_STRICT 通知并且不能在任何 myMethod 中引用 $this。另见 PHP manual on possible callback formats .


要验证方法和类是否确实存在,您可以使用

例子:

if (method_exists($myArray[0], $myArray[1])) {
call_user_func_array(*/ … */)
}

如果有其他含义,请澄清您的问题。 On a sidenote, this was probably answered before ,但由于我不确定问题是什么,所以我也不确定该选择哪一个。

关于PHP:从数组中调用一个类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4417357/

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