1

could i use nonstatic members inside a static method?

eg.

 $this->nonStaticProperty
 $this->nonStaticMethod()

and vice versa that is to say use static members inside non-static methods?

ajsie
  • 77,632
  • 106
  • 276
  • 381

4 Answers4

4

From http://php.net/manual/en/language.oop5.static.php

Declaring class properties or methods as static makes them accessible without needing an instantiation of the class. A property declared as static can not be accessed with an instantiated class object (though a static method can).

You can't use non-static members in a static function, since they're outside the function's scope. But you can use static members in a non-static function.

Felix Kling
  • 795,719
  • 175
  • 1,089
  • 1,143
Stephen Fischer
  • 2,445
  • 2
  • 23
  • 38
3

As a static member doesn't have an instance, it can't call instance methods (unless you create an instance inside that method).

Rubens Farias
  • 57,174
  • 8
  • 131
  • 162
0

Not really, as you can't use $this in a static context.

Simon
  • 388
  • 3
  • 9
0
class foo {
    
      
    
    public static function bar()
    {
        echo "bar calling\n";
    }
    
}



$ff = new foo();
echo $ff->bar();

echo foo::bar();

Check here : http://sandbox.onlinephpfunctions.com/code/48b9540c8d897f46dcd8ea13595950fa78fa96e5

AloneCoder
  • 1
  • 1
  • 4