php 类属性的调用,php中类的属性和方法如何使用

Class Person{

public static $country = "中国";// 定义静态成员属性

public $countries = "zhongguo";  //非静态类成员

public $mingzi = array();//非静态类成员

// 定义静态成员方法

public static function myCountry() {

// 内部访问静态成员属性

echo "我是".self::$country."人
";

}

}

class Student extends Person {

function study() {

echo "我是". parent::$country."人
";

}

}

echo Person::$country."
";         // 输出:中国

$p1 = new Person();                    // 实例化类

echo $p1->countries. "
";            //调用输出静态成员变量

$p1->mingzi = array("liming");          //调用静态成员数组

echo $p1->mingzi[0];                    //输出静态成员数组中的元素

Person::myCountry();                    // 输出:我是中国人

$p1->myCountry();                        //调用静态成员方法

echo Student::$country."
";        // 调用子类 输出:中国

$t1 = new Student();                    // 实例化子类

$t1->study();                           // 调用子类中的方法输出:我是中国人

?>

输出结果:

中国

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;

?>

错误的写法:<?php

class myclass{

public static $name="amos";

}

class myclass1{

public $mingzi="amos";

}

$p1=new myclass();

echo $p1->name;

echo myclass1::$mingzi;

?>

为什么要声明static类型的成员和方法?

声明类成员或方法为static,就可以不实例化类而直接访问。

如何实例化?

$var= new classname();

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值