2011-11-07 152 views
7

我正在學習PHP中的OOP階段,我想知道如何從另一個PHP類調用一個變量。調用另一個類的變量PHP

例如。

class first { 
    public $var1 = 1; 
} 

我想這是這樣,但我不知道如何繼續:

$第一=新的$第一();

回答

14

你應該做這樣的事情:

$first = new first(); 
echo $first->var1; 
+0

@xdazz的感謝! <3 – FBwall

2

你需要調用它像這樣:

$first = new first(); 
$first->var1; 
0

您需要創建類的實例:

$instance=new first(); 

然後你可以訪問該實例的變量:

$var=$instance->var1; 

注意 - 當您創建它的實例時,在類名前沒有$。

1

爲了更好的辦法讓這樣的:

class first { 
    private $var1 = 1; 
    function getVar(){ 
     return $this->var1; 
    } 

    function setVar($value){ 
     $this->var1 = $value; 
    } 
} 

或者這樣:

class first { 
    private $var1 = 1; 
    function __get(){ 
     return $this->var1; 
    } 

    function __set($key,$value){ 
     $this->$key = $value; 
    } 
} 

在這種情況下,你可以嘗試處理一些例外。

手冊:http://www.php.net/manual/en/language.oop5.overloading.php#language.oop5.overloading.members

+0

使用getter和setter函數是更好的OOP設計,因爲它從外部訪問中抽象出內部表示。例如,如果你寫了很多依賴於var1的代碼,但是後來決定將變量名改爲別的,那麼所有的外部代碼都會中斷。 –

+0

這是一個問題,您希望如何使值可訪問(例如讀/寫),以及是否允許更改無類的值時發現它。這不是更好的,看到http://www.javaworld.com/javaworld/jw-09-2003/jw-0905-toolbox.html它有一個挑釁的標題,但是關於很多決定發揮作用角色。 – hakre

0
<?php 

class Myname 
{ 
    public static $name='Your First Name'; 
} 
class Mylast 
{ 
    public static $last='Your Last Name'; 
} 
class Fullname 
{ 

    public static function staticValue() { 
     return Myname::$name."--".Mylast::$last; 
    } 
} 

print Fullname::staticValue() . "\n"; 
?> 
相關問題