Heim > Backend-Entwicklung > PHP-Tutorial > Kann eine Unterklasse die spätere Programmausführung in der Unterklasse verhindern, indem sie eine Methode in der übergeordneten Klasse aufruft?

Kann eine Unterklasse die spätere Programmausführung in der Unterklasse verhindern, indem sie eine Methode in der übergeordneten Klasse aufruft?

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
Freigeben: 2016-08-04 09:20:01
Original
1017 Leute haben es durchsucht

Dieser Zweifel wird durch die AjaxReturn-Methode in Tp verursacht. Ich möchte auch in anderen Frameworks von dieser Methode lernen, bin aber auf einige Probleme gestoßen

<code>class A {
    public $num = 2;
    public function return_num() {
        return $this->num;
    }
}

class B extends A{
    public function return_A_mum() {
        $this->return_num();
        echo 222;    //这里不让他运行
    }
}

$B = new B();
$a = $B->return_A_mum();
echo $a;
/*
这里输出$a是222;
*/
</code>
Nach dem Login kopieren
Nach dem Login kopieren

Schüler, die tp verwendet haben, wissen, dass es nicht nötig ist, $this->ajaxReturn vor return hinzuzufügen, und wenn mein Code den A-Wert in der num-Klasse zurückgeben möchte, muss dies der Fall sein Wird in Klasse A aufgerufen. Der return_num-Methode von Klasse B geht ein return voran. Wie wird die TP-Unterklasse aufgerufen, um Daten abzurufen und die Ausführung von nachfolgendem Code zu stoppen? die Unterklasse?

Antwortinhalt:

Dieser Zweifel wird durch die AjaxReturn-Methode in Tp verursacht. Ich möchte auch in anderen Frameworks von dieser Methode lernen, bin aber auf einige Probleme gestoßen

<code>class A {
    public $num = 2;
    public function return_num() {
        return $this->num;
    }
}

class B extends A{
    public function return_A_mum() {
        $this->return_num();
        echo 222;    //这里不让他运行
    }
}

$B = new B();
$a = $B->return_A_mum();
echo $a;
/*
这里输出$a是222;
*/
</code>
Nach dem Login kopieren
Nach dem Login kopieren
Schüler, die

verwendet haben, wissen, dass es nicht nötig ist, tp vor $this->ajaxReturn hinzuzufügen, und wenn mein Code den return-Wert in der A-Klasse zurückgeben möchte, muss dies der Fall sein Wird in Klasse A aufgerufen. Der num-Methode von Klasse B geht ein return_num voran. Wie wird die return-Unterklasse aufgerufen, um Daten abzurufen und die Ausführung von nachfolgendem Code zu stoppen? die Unterklasse? TP

Da die von Ihnen aufgerufene Methode über Methoden wie „exit“ und „die“ verfügt ...

Einige spezifische Ausgaben haben Formatanforderungen, daher verfügen solche Methoden häufig über integrierte Exits, wie z. B. JSON, XML usw., die am häufigsten vorkommen ones Die URL-Sprünge müssen nach Verwendung der Header-Funktion zum Senden der Sprunganweisung beendet werden, da sonst später eine große Ausgabe erzeugt wird.

Es scheint, dass Yii, ein sehr einzigartiges Framework, über zwei Methoden verfügt: $controller->redirect() und $controller->redirectAndExit(). Leute, die es nicht wissen, werden kläglich sterben, wenn sie ersteres aufrufen.
Was Sie tun, ist, JSON zurückzugeben. Wenn Sie es nicht zurückgeben, werden wahrscheinlich zusätzliche Zeichen nach dem JSON hinzugefügt, was dazu führt, dass das Datenformat illegal ist.

Sie können dieses Problem herausfinden, indem Sie sich den Quellcode von thinkphp ansehen.

<code class="php">protected function ajaxReturn($data) {
     // 返回JSON数据格式到客户端 包含状态信息
     header('Content-Type:application/json; charset=utf-8');
      exit(json_encode($data));
}</code>
Nach dem Login kopieren

Ausgabe 2

<code>class A
{
    public $num = 2;

    public function return_num()
    {
        return $this->num;
    }
}

class B extends A
{
    public function return_A_mum(&$data)
    {
        $data = $this->return_num();
    }
}

$B = new B();
$B->return_A_mum($a);
echo $a;</code>
Nach dem Login kopieren
Überprüfen Sie, ob es der gewünschte Effekt ist

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Aktuelle Ausgaben
ThinkPHP Warum Composer verwenden?
Aus 1970-01-01 08:00:00
0
0
0
thinkphp-Dateien hochladen
Aus 1970-01-01 08:00:00
0
0
0
Wie nennt Thinkphp PHP-Erweiterungen?
Aus 1970-01-01 08:00:00
0
0
0
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage