2016-08-26 6 views
1

Ich bin sehr neu in OOP. Und ich habe gelesen, dass eine abgeleitete Klasse auf die öffentlichen und geschützten Mitglieder der Basisklasse zugreifen kann.Grundlegende Vererbung in Laravel

A.php

<?php 
namespace App\Http\Controllers; 
class A extends Controller 
{ 
     public $x=5; 
     public function index() 
     {...} 
} 

und B.php

<?php 
namespace App\Http\Controllers; 
class B extends A 
{ 
    public function index() 
    { 
      print_r($x); 
    } 
} 

warum $x nicht von abgeleiteten Klasse zugegriffen? Ich habe diesen Weg:

Route::get('/B/index','[email protected]'); 

ich den Fehler bekam:

undefined variable x.

+0

Sie sind eine Funktion direkt aus der Klasse 'B' des Körpers nennen. Sie müssen es in eine Methode einbinden. Aktualisieren Sie auch Ihre Frage und teilen Sie uns mit, welchen Fehler Sie erhalten. – linuxartisan

+0

@linuxartisan Ich erhalte undefinierte Variable x. – Steve

Antwort

3

die folgenden Änderungen im Code Hersteller:

class B extends A 
{ 
    public function get() 
    { 
     echo $this->x; // will echo the value in variable $x; 
    } 
} 

$obj = new B; 
$obj->get(); 
3

Bitte Code als Gebrüll ändern. es wird Ergebnis zeigen.

class A 
{ 
     public $x=5; //or protected $x=5; 
     public function index() 
     { 
     echo "A"; 
     } 
} 

class B extends A 
{ 
    public function index() 
    { 
     echo $this->x; 
    } 

} 

$classB = new B(); 
$classB->index(); 

können Sie: http://phptester.net/ testen Online

ich Hilfe Hope you

+0

Wenn Sie wollen Echo "A" ausführen. Bitte verwenden Sie $ classA = new A(); $ classA-> index(); Danken! – hunglevan