php:从类调用函数,但更改函数接受的变量
我正在从另一个类调用公共静态函数php:从类调用函数,但更改函数接受的变量,php,class,variables,Php,Class,Variables,我正在从另一个类调用公共静态函数getSignal(),但是如何将硬编码的变量定义更改为我正在调用的函数 class moo{ public static function $getSignal($alert) { $my_array = array_pop($this->blah->myFunction1()->bestFunction()); $signals = $pop[$alert]; } } 现在在另一个文件中,我通过以下方式调用: re
getSignal()
,但是如何将硬编码的变量定义更改为我正在调用的函数
class moo{
public static function $getSignal($alert) {
$my_array = array_pop($this->blah->myFunction1()->bestFunction());
$signals = $pop[$alert];
}
}
现在在另一个文件中,我通过以下方式调用:
return moo::getSignal($alert);
但是,问题是,我需要稍微更改一下从classmoo
中调用的$my_数组。它需要:
$my_array = array_pop($this->cow->bestFunction());
我该怎么做??感谢您的帮助或见解。最干净的方法是将$my_array
作为参数传递给getSignal()
,例如,该方法将更改为
public static function getSignal($alert, array $my_array) {
$last = array_pop($my_array);
$signals = $pop[$alert];
}
这是一个有点奇怪的例子,因为函数体中没有使用$my_array
。您还在静态上下文中使用$this
假设访问所有相关成员,您可以在“其他”文件中这样调用:
return moo::getSignal($alert, $this->blah->myFunction1()->bestFunction());
在moo
类中:
return self::getSignal($alert, $this->cow->bestFunction());
如果您必须更改您想要更改的内容,那么必须为getSignal()的另一个参数留出空间,如下所示
class moo{
public static function $getSignal($alert,array $arrayParam) {
$my_array = array_pop($arrayParam);
$signals = $pop[$alert];
}
}
不能在公共静态函数中使用$this?不是因为可见性(public
),而是因为它是静态的$此
引用当前对象,因此不能在静态函数中使用,因为没有对象上下文。如果您运行代码(从函数名的开头删除$
以便编译!),您将看到致命错误:在不在对象上下文中时使用$this…
。明白了,改为公共函数我不知道如何从另一个文件调用此函数,它是否仍在调用相同的$my_数组
?当我调用返回moo::getSignal($alert)
不会$my\u array=array\u pop($my\u array)代码>是递归的吗?