Heim >Backend-Entwicklung >PHP7 >Unterschiede zwischen PHP5 und PHP7 hinsichtlich Get-Funktionen

Unterschiede zwischen PHP5 und PHP7 hinsichtlich Get-Funktionen

藏色散人
藏色散人nach vorne
2021-10-28 16:21:321838Durchsuche

Der Unterschied zwischen PHP5 und PHP7 darin, Array-Elemente als dynamische Funktionsnamen zu verwenden

In PHP5 und PHP7 funktioniert beim Abrufen von Funktions-/Methodennamen über Variablen und beim Ausführen von Funktionen/Methoden aufgrund unterschiedlicher Interpretationsstrategien möglicherweise nicht derselbe Code Versionen.

Beispiel

$a = ['add', 'sub'];
class Test
{
  public function add()
  {
    echo 1 + 2;
  }
}
$t = new Test();
$t->$a[0]();

Das obige Beispiel kann normal unter PHP5.6 ausgeführt werden, aber unter PHP7 wird ein schwerwiegender Fehler ausgegeben: Der Funktionsname muss eine Zeichenfolge sein. Dies liegt daran, dass bei der Ausführung von t->t−>a0 unter PHP5 zuerst $a[0] ausgeführt wird, der Elementwert abgerufen wird und dann die spezifische Methode des Objekts ausgeführt wird.

Unter PHP7 wird t->t−>a zuerst ausgeführt, wodurch ein Fehler ausgegeben und die Ausführung unterbrochen wird. Wenn Sie es normal unter PHP7 ausführen müssen, müssen Sie es in t->{a[0]}() ändern.

Spezifische Unterschiede finden Sie unter:

Unterschiede zwischen PHP5 und PHP7 hinsichtlich Get-Funktionen

Empfohlenes Lernen: „PHP7-Tutorial

Das obige ist der detaillierte Inhalt vonUnterschiede zwischen PHP5 und PHP7 hinsichtlich Get-Funktionen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:juejin.im. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen