结果:
代码:
create_obj.php
<?phpnamespace admin;class People{ public $attr=100;//属性 public $new=200;//属性 public function show()//方法 { return $this->attr; } public function newself() { $obj= new People();//优化:这里的new People(),应该改成new self(); $obj= new self();//可以防止类名变了,而后面的new 类名 跟着改! var_dump($obj); echo $obj->new; } //真正生产环境中用 public function getinfo($value='') { // $obj= new self();// 可以推出==> $this =new self(); // 而$this 指的类本身,所以就不需要再实例化了 // echo $this->new;//而函数一般用return,所以 return $this->new; }}$obj = new People();//实例化一个对象$obj1 = new People();//$obj $obj1 非同一个对象,但来自同一个类var_dump($obj);var_dump($obj1);
var_dump($obj instanceof People );//查看是否是某个类的实例//访问对象echo $obj->attr."<hr>";//访问对象中的属性echo $obj->show();//访问对象中的方法echo "<hr>";$obj= new People();var_dump($obj);$obj->newself();
$new= new People();echo "<hr>";$new->getinfo();echo $new->getinfo();//总结://讲了 类的创建 属性 方法 的创建 调用; 内部创建 new self() ->推出$this 伪对象。
namespace.php
<?phpnamespace red;//必须为脚本的第一行代码//第一种创建方式class test{}namespace green;class test{}namespace blue;class test{}//---------------两种方式不能出现在同一个php文件中-------常用第一种方式--------------//同一个php文件中,不能有多种空间定义格式//第二种方式namespace one{ class test{}
}namespace two{ class test{}}namespace three{ class test{}}
//这时就可以创建全局空间////这时这就是一个匿名空间namespace{
class test{}}