《php和mysql web开发》笔记——第6章 面向对象的PHP

访问修饰符:默认为public。private修饰的属性和方法只能在类的内部进行访问,且不会被继承。protected修饰的属性和方法则会被继承。

注:属性的修饰符public不能省略,必须显示修饰。

 

子类调用父类的被重载的函数:parent::funName(); 此时,如果该方法中使用的属性或方法被子类重载了,则使用子类的属性值或方法。

 

final:修饰一个函数,可以禁止该函数被子类重载。修饰一个类,可以禁止该类被继承。final无法修饰变量。

PHP不支持多继承。但可以实现多个接口。

 

const变量:相当于java中的静态变量。用双冒号访问。

static:可以修饰方法,表示静态方法。与java中的静态方法一样。用双冒号访问。

 

instanceof:检测一个对象的类型。

 

如果要求某个参数必须是类A的实例或其子类的实例,可如下定义:

function funName(A $a){}

 

延迟静态绑定:PHP 5.3引入。该特性允许在一个静态继承的上下文中对一个被调用类的引用。父类可以使用子类重载的静态方法。

 

克隆对象:$c = clone $b。可以定义__clone()方法来自定义所需要的确切复制行为。

 

抽象类:使用关键字abstract修饰。

 

使用__call()重载方法,如下:

class A

         {

                   function displayArray($arr)

                   {

                            print_r($arr);nl();

                   }

                  

                   function displayScalar($a,$b)

                   {

                            echo "a=$a,b=$b<br>";

                   }

                  

                   function __call($method,$p)

                   {

                            if($method=="display")

                            {

                                     if(is_array($p[0]))

                                     {

                                               $this->displayArray($p[0]);

                                     }else

                                     {

                                               $this->displayScalar($p[0]);

                                     }

                            }

                   }

         }

此时,类A可以不用实现display()方法。

 

__autoload():不是类方法,是一个单独的函数;即可以在任何类声明之外声明这个函数。如果实现了该函数,它将在实例化一个还没有被声明的类时自动调用。

 

可以使用foreach()通过循环方式取出一个对象的所有public属性。

如果需要一些更加复杂的行为,可以实现一个iterator。要实现一个迭代器,必须将要迭代的类实现IteratorAggregate接口,并且定义一个能够返回该迭代类实例的getIterator方法。这个类必须实现Iterator接口,该接口提供了一系列必须实现的方法。

 

__toString():使用echo打印某个类的对象时,会调用该方法。

 

反射Reflection:http://blog.csdn.net/hguisu/article/details/7357421

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值