类laravel 4中的全局变量

时间:2014-09-05 14:05:49

标签: variables laravel global

我有类似的东西

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中 这是什么问题?感谢

2 个答案:

答案 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的更多信息。