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);
但是,问题是,我需要稍微更改一下从class
moo
中调用的
$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)是递归的吗?