I'm wondering why the following lines causes an error. doSomething()
gets called from another PHP file.
class MyClass
{
private $word;
public function __construct()
{
$this->word='snuffy';
}
public function doSomething($email)
{
echo('word:');
echo($this->word); //ERROR: Using $this when not in object context
}
}
To use your class and method which are not static
, you must instanciate your class :
$object = new MyClass();
$object->doSomething('test@example.com');
You cannot call your non-static method statically, like this :
MyClass::doSomething('test@example.com');
Calling this will get you :
Strict standards: Non-static method MyClass::doSomething() should not be called statically
$this
: Fatal error: Using $this when not in object context
For more informations, you should read the Classes and Objects section of the manual -- and, for this specific question, its Static Keyword page.
How are you calling the method?
Doing
MyClass::doSomething('user@example.com');
will fail, as it's not a static method, and you're not accessing a static variable.
However, doing
$obj = new MyClass();
$obj->doSomething('user@xample.com');
should work.