zoukankan      html  css  js  c++  java
  • 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()
  • 相关阅读:
    javaWeb快速入门+——初体验-HelloWorld
    简单理解Linux系统的挂载是什么鬼
    STM32MP157 Cortex®-M4高性能系列MCU
    常见六种锂电池特性及参数对比
    IIC通信详解
    stm32微秒延时问题
    STM32 HAL库实现微秒级别延时
    开关电源波纹的产生、测量及抑制
    图解DIY 1pA超微电流测试器
    stm32
  • 原文地址:https://www.cnblogs.com/zhuiluoyu/p/4688922.html
Copyright © 2011-2022 走看看