2013-10-07 135 views
0

我是新的PHP OOP如何從一個類函數變量調用另一個類的功能

我有兩個文件,這是我的代碼

1)info.php的

public $bd, $db1;  
class Connection { 
    function connect() { 
    $this->db = 'hello world'; 
    $this->db1 = 'hi' 
    } 
} 

2)prd.php

require_once 'info.php' 
class prdinfo { 
    function productId() { 
    echo Connection::connect()->$bd; 
    echo Connection::connect()->$db1; 
    } 
$prd = new prdinfo(); 
$prd->productId(); 

我怎麼可以回聲我在二等變種我已經以這種方式嘗試,但我沒有得到正確的輸出

感謝

+6

這兩個類中沒有一個是首要的有效類聲明 –

+1

您是否希望productId方法是靜態的? –

+1

第一步你需要在類中聲明公共變量。然後使用extends來擴展第二個類中的第一個類以訪問基類變量 – Nes

回答

3

應該是這樣的。

info.php的

class Connection { 
    // these two variable should be declared within the class. 
    protected $db; // to be able to access these variables from a diff class 
    protected $db1; // either their scope should be "protected" or define a getter method. 

    public function __construct() { 
     $this->connect(); 
    } 

    private function connect() { 
     $this->db = 'hello world'; 
     $this->db1 = 'hi'; 
    } 
} 

prd.php

require_once 'info.php'; 

// you are accessing the Connection class in static scope 
// which is not the case here. 
class prdinfo extends Connection { 
    public function __construct() { 
     // initialize the parent class 
     // which in turn sets the variables. 
     parent::__construct(); 
    } 

    public function productId() { 
     echo $this->db; 
     echo $this->db1; 
    } 
} 


$prd = new prdinfo(); 
$prd->productId(); 

這是一個基本的演示。根據您的需求修改它。更多在這裏 - http://www.php.net/manual/en/language.oop5.php

+0

可能會幫助提及他們有的錯誤,其中有一些 –

+0

當然,會這樣做。 –

+0

''echo $ this - > $ db;'應該是'echo $ this-> db;' –

相關問題