Fatal error Using $this when not in object context in

大致意思是 $this 没有上下文,原因是没有对此类进行实例化。

出现此错误的原因是:在FileCommand.php中使用 $this->方法/属性。

$this 不是不可以用,而是要看情况用。在实例化的 类中使用 $this是可以的

 

class Person{

     private var    $name;

     private var    $sex;

    public function showName(){

          echo $this->name;

          $this->message();

    }

     public function message(){

             echo "success";

     }

}

 

如果不实例化 Person 类而直接访问的话就会出上面的错误,意思是 $this没有上下文。

正确用法:

   $person = new Person();

   $person.showName();  

如果不想定义直接用的话,则可通过:   Person::message(); 注意里边不能含有 $this

PHP允许使用static关键字,该关键字适用于允许在未初始化类的情况下就可以调用的方法;

请注意,在一个静态方法中,不能使用this关键字,因为可能会没有可以引用的对象实例。

 

 

class test {
    private $a;
     
    function t1( ){
        $this->a=1;
        print  $this->a."";
     }
    static function t2( ){
        $test=new test();  //静态方法  所以要实例化这个类;而不能直接用 $this->
        $test->a=2;     
        print $test->a."";  
    }
}
$re= new test( );
$re->t1();
$re::t2();

 

 一般非常量、静态字段、静态方法,都是用指向来 -> 来调用内部成员,例如:$re -> t1()

 
只有常量、静态字段、静态方法,采用 :: 调用,例如:$re :: t1()

 

转载于:https://www.cnblogs.com/zhuiluoyu/p/4688922.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值