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?

4 Answers 4

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.

Sign up to request clarification or add additional context in comments.

Comments

3

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

2 Comments

is creating an instance within a static method recommended?
no, it's not; if you need to do that, you have a design problem
0

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

Comments

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

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.