I doubt he found your post sarcastic. However, if you know a little about object oriented programming, the error message is self explanatory. Yet, without having code to look at, there is nothing enabling us to tell you exactly what's wrong, or rather, how to go about fixing it, except for the aforementioned psychic powers.
For example, let's say I asked you what's wrong here, and that you understood exactly what this error message meant. What could you tell me, without looking at my code, other than the exact same thing that the error message did?
Strict Standards: Non-static method A::func() should not be called statically in /path/to/script.php on line 47
Now, let's say I provide you with some code as well...
error_reporting(-1);
class A
{
public static function static_func() { echo "I'm static<br/>";}
public function func() { echo "I'm non-static<br/>"; }
}
$a = new A;
A::static_func(); # static method called statically - ok
$a->static_func(); # static method called non-statically - ok
$a->func(); # non-static method called non-statically - ok
A::func(); # non-static method called statically - strict standards message (this is line 47)
Now, you could say the exact same thing again, since A:: implies that I am statically accessing something of class A, and here it happens to be func(), which in the class definition clearly is declared without the static keyword, which means non-statically. You'd just be repeating back to me the same thing that the error message stated, and you'd be right.
You could however also argue that the function should be declared as static since it does not operate on an instance of A (which is why the above code does execute), as opposed to the following piece of code
error_reporting(-1);
class A
{
private static $s = 'static';
private $n = 'non-static';
x public static function static_func() { echo "I'm ".self::$s.'<br/>'; }
public function func() { echo "I'm ".$this->n.'<br/>'; }
}
$a = new A;
A::static_func(); # static method called statically - ok
$a->static_func(); # static method called non-statically - ok
$a->func(); # non-static method called non-statically - ok
A::func(); # non-static method called statically - fatal error!
Fatal error: Using $this when not in object context in /path/to/script.php on line 38. Line 38 contains $this->n, and $this refers to this particular object (aka instance of the class) for which we called func(). When you call func as $a->func(), $this refers to object $a. But when you call A::func() there is no object. So $this refers to nothing, or in other words, using $this when not in object context, and "when not in object context" could also be worded "when in static context".
Now that you do know what my code looks like, it's possible to tell me how to correct things. For example
1) make func in code example 1 static
2) do not call it statically (possible solution for code example 1, and the only solution for code example 2).
Well, at least assuming you cannot change A::$n from non-static to static etc.