我正在學習PHP中的OOP階段,我想知道如何從另一個PHP類調用一個變量。調用另一個類的變量PHP
例如。
class first {
public $var1 = 1;
}
我想這是這樣,但我不知道如何繼續:
$第一=新的$第一();
我正在學習PHP中的OOP階段,我想知道如何從另一個PHP類調用一個變量。調用另一個類的變量PHP
例如。
class first {
public $var1 = 1;
}
我想這是這樣,但我不知道如何繼續:
$第一=新的$第一();
你應該做這樣的事情:
$first = new first();
echo $first->var1;
你需要調用它像這樣:
$first = new first();
$first->var1;
您需要創建類的實例:
$instance=new first();
然後你可以訪問該實例的變量:
$var=$instance->var1;
注意 - 當您創建它的實例時,在類名前沒有$。
爲了更好的辦法讓這樣的:
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
使用getter和setter函數是更好的OOP設計,因爲它從外部訪問中抽象出內部表示。例如,如果你寫了很多依賴於var1的代碼,但是後來決定將變量名改爲別的,那麼所有的外部代碼都會中斷。 –
這是一個問題,您希望如何使值可訪問(例如讀/寫),以及是否允許更改無類的值時發現它。這不是更好的,看到http://www.javaworld.com/javaworld/jw-09-2003/jw-0905-toolbox.html它有一個挑釁的標題,但是關於很多決定發揮作用角色。 – hakre
<?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";
?>
@xdazz的感謝! <3 – FBwall