1. 创建类、实例化、命名空间、类成员、类方法(手写)
<?php
//定义类
class people{
}
//实例化类
$o1 =new people();
//数据类型object
var_dump($o1);
echo'<hr>';
//判断是否属于同个类的实例
var_dump($o1 instanceof people);
$o2 =new people();
echo '<hr>';
//两个对象虽然同属于一个类的实例,但是彼此不全相等
var_dump($o1==$o2);
echo '<hr>';
var_dump($o1 === $o2);
echo '<hr>';
<?php
//命名空间:解决全局成员的命名冲突问题
//namespace red;
//class Test{
//
//}
//namespace blue;
//class Test{
//
//}
//也可以使用大括号来声明
// namespace one{
// class Test{}
// }
$name ='网络摄像机';
class A{
public $name='网络摄像机';
public $price ='700';
}
$a =new A();
// 访问类的成员:->,访问成员和方法
echo $a -> price;
//动态对象属性
$a -> brand = '华为';
echo $a -> brand;
//对象方法
class B{
public $name ='人类';
public $color = '黄色';
public function chifan(){
echo $this ->name.'去吃饭';
}
public function heshui(){
echo '欧文要喝水';
}
public function newlei(){
$b =new self();
echo $b -> chifan();
}
}
//类外实例化
$ren = new B();
print_r(get_class_methods(B::class));
$ren -> chifan();
echo '<hr>';
2. 构造方法
//构造方法:初始化对象成员,_construct()
class C{
public $name;
public $age;
public function __construct($name,$age){
$this ->name = $name;
$this -> age = $age;
echo $this -> name .$this ->age;
}
// 析构方法:在对象被删除时清理时自动调用
public function __destruct(){
echo '对象删除';
}
}
//当类实例化就会立即执行构造方法
$a = new C('木易','21');
echo '<hr>';
$a = new C('欧阳','18');