php中类的属性和方法如何使用
<?phpClass 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,就不能实例化调用。如:
正确的写法:
<?phpclass 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>
错误的写法:
<?phpclass 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();
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。