php中類的屬性和方法如何使用

<?php
Class Person{
    public static $country = "中國";// 定義靜態成員屬性
    public $countries = "zhongguo";  //非靜態類成員
    public $mingzi = array();//非靜態類成員
    // 定義靜態成員方法
    public static function myCountry() {
        // 內部訪問靜態成員屬性
        echo "我是".self::$country."人<br />";
    }
}
class Student extends Person {
    function study() {
        echo "我是". parent::$country."人<br />";
    }
}
echo Person::$country."<br />";         // 輸出:中國
$p1 = new Person();                    // 實例化類
echo $p1->countries. "<br>";            //調用輸出靜態成員變量
$p1->mingzi = array("liming");          //調用靜態成員數組
echo $p1->mingzi[0];                    //輸出靜態成員數組中的元素
Person::myCountry();                    // 輸出:我是中國人
$p1->myCountry();                        //調用靜態成員方法
echo Student::$country."<br />";        // 調用子類 輸出:中國
$t1 = new Student();                    // 實例化子類
$t1->study();                           // 調用子類中的方法輸出:我是中國人
?>
<html>
<head>
<meta Content-Type="content-type:text/plain" charset="utf-8">
</head>
</html>

輸出結果:

中國
zhongguo
liming我是中國人
我是中國人
中國
我是中國人


public的變量可以如果沒有static是可以實例化調用的調用,如果有static,就不能實例化調用。如:


正確的寫法:

<?php
class myclass{
public static $name="amos";
}
class myclass1{
public $mingzi="amos";
}
echo myclass::$name;
$p2=new myclass1();
echo $p2->mingzi;
?>
<html>
<head>
<meta Content-Type="content-type:text/plain" charset="utf-8">
</head>
</html>

錯誤的寫法:

<?php
class myclass{
public static $name="amos";
}
class myclass1{
public $mingzi="amos";
}
$p1=new myclass();
echo $p1->name;
echo myclass1::$mingzi;
?>
<html>
<head>
<meta Content-Type="content-type:text/plain" charset="utf-8">
</head>
</html>

爲什麼要聲明static類型的成員和方法?

聲明類成員或方法爲static,就可以不實例化類而直接訪問。

如何實例化?

$var= new classname();

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章