1. __set() 和 __get() 方法
class A
{
private $n1;
private $n2;
private $n3;
//使用__set()方法来管理所有的属性
public function __set($pro_name,$pro_val)
{
$this->pro_name = $pro_val;
}
//使用__get()方法获取所有属性的值
public function __get($pro_name)
{
if(isset($pro_name)){
return $this->pro_name;
}else{
return null;
}
}
}
$a1 = new A();
$a1->n1 = "aaa";
echo $a1->n1;
1. 抽象
2. 封装
3.多态
PHP不支持函数多态。
class A
{
public function test1($a,$b)
{
echo '接受一个参数';
}
public function test2($a)
{
echo '接受两个参数';
}
// 这里提供一个__call;
// 当一个对象调用某个方法,而该方法不存在,则系统自动调用__call
function __call($method,$p)
{
var_dump($p);
if($method == "test"){
if(count($p1)==1){
$this->test1($p);
}else if(count($p)==2){
$this->test2($p)
}
}
}
}
$a = new A();
echo $a->test(1);
也可以判断类型。
重写(覆盖):名称与参数个数必须一样
5. 抽象类
6.接口
7. final
8. const
9. 对象引用