我有类似的东西
class Unilevel {
public $contador = 2;
public static function listarLevels($user_id){
if($contador <= 5){
echo '<h1>Nivel '.$contador.'</h1>';
$user = DB::table('matrices')->where('id_user', $user_id)->first();
$actual_user = DB::table('users')->where('id', $user->id_user)->first();
echo $actual_user->username.'<br>';
}
$contador++;
}
}
该函数不起作用,但如果我将变量$ contador放在listarLevels中 这是什么问题?感谢
答案 0 :(得分:3)
这就是类在PHP中的工作方式。
要在函数中将$contador
称为类属性,请使用$this->contador
阅读PHP中面向对象编程的手册可能会有所帮助,以便在深入Laravel之前更熟悉它。 http://php.net/manual/en/language.oop5.php
答案 1 :(得分:0)
您无法在静态方法中访问类非静态属性。
试试这个。
class Unilevel {
public static $contador = 2;
public static function listarLevels($user_id){
//self::$contador = 4;
}
}
如果您的方法是静态的,您还需要使您的属性保持静态。他们很少有其他方式像实例化类的对象一样。在PHP中阅读有关static的更多信息。