1、命名空间
namespace one;
class name{}
namespace two;
class name{}
// 同一个页面,可以多个命名空间,但最好用{}括起来
namespace one{
class name{}
}
namespace two{
class name{}
}
2、类与对象
namespace one;
class name{
public $a = '张明轩';
public $b = '张明朗';
}
$aa = new name();
$bb = new name();
echo $aa->a; //输出 张明轩
echo $aa->b; //输出 张明朗
// 检测对象是否是同一个类的实例
var_dump($aa instanceof name); // bool(true)
var_dump($bb instanceof name); // booo(true)
//等于,恒不等
var_dump($aa == $bb); // bool(true) 值等
var_dump($aa === $bb); // bool(false) 类型不等
3、对象属性
namespace admin;
class name{
public $a = '张明轩';
public $b = '张明朗';
}
$aa = new name;
echo $aa -> a; //张明轩
echo $aa -> b; //张明朗
//类的外部,添加数据,但不会改变原有类数据
$aa -> c = '张明昊';
echo $aa -> c; //张明昊
//get_class_vars() 返回实类属性数组
$bb = get_class_vars(name::class);
print_r($bb);
4、对象方法
namespace admin;
class name{
public $a = '张明轩';
public $b = '张明朗';
public function info1(){
$aa = new self(); //调用它本身实类
return $aa->a . $aa->b;
}
public function info2(){
return $this->a . $this->b;
}
}
$c = new name();
echo $c -> info1(); // 张明轩 张明朗
echo $c -> info2(); // 张明轩 张明朗
//get_class_methods 调用类中定义的方法
$cc = get_class_methods(name::class);
print_r($cc);
//get_class_vars 调用类中定义的实类属性
$dd = get_class_vars(name::class);
print_r($dd);
5、构造方法与析构方法
namespace admin;
class name{
public $a;
public $b;
// 构造方法
function __construct($aa,$bb){
$this->a=$aa;
$this->b=$bb;
}
function info(){
return $this->a . $this->b;
}
//析构方法: 在对象被删除/清理时自动调用
function __destruct(){
echo '程序执行结束';
}
}
$cc = new name('名:','明轩'); // 实例化
echo $cc->info(); // 名:明轩
程序执行结束 //等同于unset($cc) 或 $cc = null