痞芳甲盛磋腑滤枢蹦俱防连超
新建目录15 在15下新建class目录 class下新建User1.php 在15下新建demo1.php
知识点:
类属性与类常量
1.类属性仅允许使用以下类型的数据进行初始化
标量和数组字面量:字符串,数值,常量,数组,原型文档(php5.3+)
2.不允许使用:变量,表达式,对象
3.类常量使用关键字const声明,不允许设置访问限制符,强制为public,不能更改
4.类常量是属性类的,不属性它的某个实例对象,必须使用类才可以访问
5.访问类常量要使用范围解析符::,双冒号
在类中使用关键字self表示当前类,在外部可直接使用类名
User1.php:
<?php //用户类 define('SITE_NAME','萌面人资料铺'); class User1 { //声明属性 private $siteName=SITE_NAME; private $name='mengmianren'; private $email='mengmianren@123.com'; private $course=['php','java','python']; // 错误写法: // private $tel=$stml;//错误,不能为变量 // private $tel=5+10;//错误,不能为表达式 // private $a=$this->name;这种写法也是错的,不能为表达式 const LECTURE="萌面人";//常量尽量大写,且应该初始化,不写public 默认即为public //构造方法: 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; } }
demo1.php:
<?php //类属性和类常量 require "./class/User1.php"; $user1=new User1(); echo $user1->name."<br>"; echo $user1->email."<br>"; echo $user1->siteName."<br>"; echo "<pre/>"; print_r($user1->course); echo "<hr color='red'>"; $user2=new User1('萌面人','admin@123.com','www.xuexianswer.com',['html','css','javascript']); echo $user2->name."<br>"; echo $user2->email."<br>"; echo $user2->siteName."<br>"; echo "<pre/>"; print_r($user2->course); //常量的访问与静态访问一致: echo "<hr color='red'>"; echo User1::LECTURE;
执行:
归极掳凭怀敝攫高姆揣东鳞汲