我有一个有2个功能的模型。我们假设该模型的名称为Cars
。我试图调用一个返回数组的函数brand
,以便我可以在另一个getBrand
函数中使用它。
public static function getBrand($data) {
$brandVariable = $this->brand();
for ($i=1; $i < count($brandVariable ) ; $i++) {
//do something
}
}
public static function brand() {
$arrayValues = array(
1 => 'Brand A',
2 => 'Brand B',
);
return arrayValues;
}
由于值在brand
函数中,我需要在getBrand
内传递。
我在for
循环中收到错误。我尝试了另一个文件(本地PHP而不是Laravel),它运行正常。但是在Laravel,它没有得到预期的结果。
答案 0 :(得分:6)
使用Cars::brand
因为您将函数声明为静态
public static function getBrand($data=null) {
$Cars = new Cars();
$brandVariable = $Cars::brand();
for ($i=1; $i < count($brandVariable ) ; $i++) {
//do something
}
}
或
public static function getBrand($data=null) {
$brandVariable = Cars::brand();
for ($i=1; $i < count($brandVariable ) ; $i++) {
//do something
}
}
答案 1 :(得分:2)
您在静态函数内调用brand
,$this
在声明为static
的方法中不可用。
由于brand
被声明为静态函数,您可以使用以下方法之一来调用函数
如果在课堂内
self::brand();
或
static::brand();
来自课外
ClassName::brand();
答案 2 :(得分:2)
这些函数是静态的,所以你应该使用
self::brand()
而不是
$this->brand()