Ursache für Meldung Strict Standards: ... assuming $this ...

25/04/2013 - 12:29 von Friedhelm Starkström | Report spam
Hallo,

zu der Meldung:
"Strict Standards: Non-static method class::_function() should not be
called statically, assuming $this from incompatible context"

ich weiß, man kann error_reporting runtersetzen/abstellen ...
aber mich würde interessieren: was will php hier, wie sollte man hier
"dynamic callen"?

ich möchte eigentlich beim Entwickel das error_reporting hoch lassen und
nicht mit diesen Meldungen zugepflastert werden ...


Die Datei bzw. Klasse & Funktion und rufe
sie von einer anderen Datei auf:


public function item($id = null) { ...
$data = $class::_function($id);
... }

ein $this habe ich hier jedenfalls nicht erfolgreich anwenden können.


Könnt ihr so sagen - wie die Funktion meldungsfrei aufgerufen werden kann?

lg. friesta
 

Lesen sie die antworten

#1 k
25/04/2013 - 15:33 | Warnen spam
Friedhelm Starkström writes:

Hallo,

zu der Meldung:
"Strict Standards: Non-static method class::_function() should not be called
statically, assuming $this from incompatible context"

ich weiß, man kann error_reporting runtersetzen/abstellen ...
aber mich würde interessieren: was will php hier, wie sollte man hier "dynamic
callen"?

ich möchte eigentlich beim Entwickel das error_reporting hoch lassen und
nicht mit diesen Meldungen zugepflastert werden ...


Die Datei bzw. Klasse & Funktion und rufe
sie von einer anderen Datei auf:


public function item($id = null) { ...
$data = $class::_function($id);
... }

ein $this habe ich hier jedenfalls nicht erfolgreich anwenden können.


Könnt ihr so sagen - wie die Funktion meldungsfrei aufgerufen werden kann?



Indem du _function als static deklarierst.

php > class c1 { public function _function () { return 1;}}
php > $class = 'c1';
php > echo $class::_function();
PHP Strict Standards: Non-static method c1::_function() should not be called statically in php shell code on line 1

Strict Standards: Non-static method c1::_function() should not be called statically in php shell code on line 1
1php >
php > class c2 { static public function _function () { return 1;}}
php > $class = 'c2';
php > echo $class::_function();
1php >


KP

Ähnliche fragen