Mit $this when not in object context - Laravel 4 PHP 5.4.12
War ich attemping Zugriff auf meine Instanz an den Konstruktor übergeben mit der variable $this; In allen anderen Methode, die es scheinen, funktionieren gut, wenn ich rufe $this->event->method()
aber auf diese Methode zu werfen mir einen Fehler
Using $this when not in object context
Ich habe gerade eine Forschung zu diesem Thema und die Antworten, die ich fand, war alles über die PHP-version, aber ich habe die version 5.4. was kann das Problem sein?
Dies ist die Methode, die ich versuche zu nennen, die Instanz.
//all protected variable $event , $team , $app
function __construct(EventTeamInterface $event,TeamInterface $team) {
$this->event = $event;
$this->team = $team;
$this->app = app();
}
/**
* @param $infos array() |
* @return array() | ['status'] | ['msg'] | ['id']
*/
public static function createEvent($infos = array()){
$create_event = $this->event->create($infos);
if ($create_event) {
$result['status'] = "success";
$result['id'] = $create_event->id;
} else {
$result['status'] = "error";
$result['msg'] = $create_event->errors();
}
return $result;
}
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie nicht verwenden
$this
wenn Sie in der statischen Methode. Statische Methoden nicht bewusst sind, die den Status des Objektes. Sie können nur auf statische Eigenschaften und Objekte mitself::
. Wenn Sie möchten, um das Objekt selbst, die Sie benötigen, zu fühlen, wie Sie sind aus der Klasse, so dass Sie brauchen, um beispielsweise einer, aber das wird scheitern, um zu verstehen, was passiert ist, bevor Sie in das Objekt. I. e. wenn eine Methode geändert-Eigenschaft$_x
einen Wert, wenn Sie reinstance das Objekt, verlieren Sie diesen Wert.Jedoch in Ihrem Fall, die Sie tun können
Rufen Sie auch nicht statische Methoden, da statische
self::method()
aber in neueren PHP-Versionen erhalten Sie Fehler, so ist es besser, es nicht tun.Informationen finden Sie in der offiziellen php-Dokumentation: http://www.php.net/manual/en/language.oop5.static.php