<?php namespace ONE; require 'XinXi.php'; //spl_autoload_register(function ($className) //{ // require $className.'.php'; //}); class ONE { //属性声明 private $name='';// 姓名 private $age=0;// 年龄 private $email='123.123';// 邮箱 private $data=[];//自定义数据收集器 //构造方法 public function __construct($name='',$age=0,$email='123.123') { $this->name=$name; $this->age=$age; $this->email=$email; } //魔术方法:查询器 public function __get($name) { $msg=null; if(isset($this->$name)){ $msg= $this->$name; }elseif(isset ($this->data[$name])){ $msg= $this->data[$name]; }else{ $msg='无此属性'; } return $msg; } //魔术方法:设置器 public function __set($name,$value) { if(isset($this->$name)){ $this->$name=$value; }else{ $this->data[$name]=$value;//如果属性不存在,创建它并保存到类属性$data数组中 } } } $one = new ONE('XXL',18,'456.456'); echo print_r($one); echo '<hr>'; echo '姓名:'.$one->name.'<br>年龄:'.$one->age.'<br>邮箱:'.$one->email; echo '<hr>'; use XinXi\XinXi as xigua;//导入外部空间类并取别名xigua; $xinxi = new xigua(); echo '姓名:'.$xinxi->name.'<br>年龄:'.$xinxi->age.'<br>邮箱:'.$xinxi->email(); ?>
<?php namespace XinXi; class XinXi { protected $name=''; protected $email=''; protected $age=''; const school = 'xiaoxue'; //构造方法 public function __construct($name='lei1',$email='123.123',$age=1) { $this->name = $name; $this->email = $email; $this->age = $age; } //查询器 public function __get($name) { return $this->$name; } //设置器 public function __set($name, $value) { return $this->name =$value; } public function getConst()//在类中访问类常量,使用self来引用当前类名 { return self::school;//避免类名改变时修改内部对它的引用 } public function email(){ return $this->email; } } ?>
当使用require 'XinXi.php';时,use引入本同目录下XinXi.php没有问题,当使用spl_autoload_register自动加载时,提示找不到文件,需要新建文件夹XinXi才能正常使用