声明属性
*类属性与类常量
* 1.类属性仅允许使用以下类型的数据进行初始化
* 标量和数组字面量:字符串,数值,常量,数组,原型文档(php5.3+)
* 2.不允许使用:变量,表达式,对象
* 3.类常量使用关键字const声明,不允许设置访问限制符,强制为public,不能更改
* 4.类常量是属性类的,不属性它的某个实例对象,必须使用类才可以访问
* 5.访问类常量要使用范围解析符::,双冒号
* 在类中使用关键字self表示当前类,在外部可直接使用类名
实例
<?php define('SITE_NAME','PHP中文网'); class User1 { private $siteName = SITE_NAME; private $name = '老顽童'; private $email = 'lwt@php.cn'; private $course = ['php','java','python']; const LECTURE = '朱老师'; //构造方法 public function __construct($name='',$email='', $siteName='',array $course=[]) { //如果传参,则使用新值初始化属性,否则使用默认值 $name ? ($this->name = $name) : $this->name; $email ? ($this->email = $email) : $this->email; $siteName ? ($this->siteName = $siteName) : $this->siteName; $course ? ($this->course = $course) : $this->course; } //查询器 public function __get($name) { return $this->$name; } //设置器 public function __set($name,$value) { return $this->$name = $value; } //在类中访问类常量,使用self来引用当前类名 public function getConst() { //类内部也可以直接使用当前类名 // return User1::LECTURE; //推荐使用self:当类名改变时,不必修改内部对它的引用 return self::LECTURE; } }
运行实例 »
点击 "运行实例" 按钮查看在线实例
测试页面
实例
<?php //类属性与类常量 require './class/User1.php'; //$user1 = new User1(); //不传值输出默认值 $user1 = new User1('洪七公','hqg@php.cn','www.php.cn',['html','css','javascript']); echo $user1->name,'<br>'; echo $user1->email,'<br>'; echo $user1->siteName,'<br>'; echo '<pre>'.print_r($user1->course,true).'</pre>'; echo User1::LECTURE; //外部访问类常量,必须使用范围解析符::,就是双冒号 echo '<br>'; //访问类中的类常量 echo $user1->getConst();
运行实例 »
点击 "运行实例" 按钮查看在线实例