• 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()
  • 相关阅读:
    「PHP」使用 Homestead 作为 thinkphp5 的开发环境
    「PHP」Homestead 安装 swoole
    「PHP」Homestead
    存储过程
    Windows不能用鼠标双击运行jar文件怎么办?
    spring事务管理
    xml页面开头报错Multiple annotations found at this line
    修行
    jsp页面get和post不同导致的乱码问题
    VC执行Cmd命令,并获取结果
  • 原文地址:https://www.cnblogs.com/zhuiluoyu/p/4688922.html
Copyright © 2020-2023  润新知