您好,登录后才能下订单哦!
密码登录
登录注册
点击 登录注册 即表示同意《亿速云用户服务条款》
<?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();
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。