博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
php面向对象精要(1)
阅读量:5887 次
发布时间:2019-06-19

本文共 1259 字,大约阅读时间需要 4 分钟。

1、静态属性与方法

每一个类的实例拥有自己的属性和方法,每一个类也可以包含静态属性,静态属性不属于类的任何实例,可以把静态属性理解成存储在类中的全局变量,可以在任何地方通过类名引用静态属性。

1 
getValue() . PHP_EOL;11 12 echo MyClass::$a . PHP_EOL;13 ?>

 2,静态属性的应用-----把一个唯一的id传递到类的所有实例中

unique_id = self::$count; } } $obj1 = new MyClass(); echo $obj1->unique_id . PHP_EOL; $obj2 = new MyClass(); echo $obj2->unique_id . PHP_EOL;?>

3,静态方法

1 

4,类的常量

>全局常量用 define函数定义

>类的常量与静态成员类似,他们属于类本身,而不是类的实例

>类的常量对大小写敏感

 5,对象克隆

在php5中,对象赋值,其实是引用 , 如果需要拷贝对象,用克隆关键字clone

var = 2; //使用$obj2 = $obj1, 下面输出2 //使用$obj2 = clone $obj1, 下面输出1 echo $obj1->var . PHP_EOL;?>

6,多态

下面这个实例,如果想要再增加一种动物,那么需要改动2处,需要增加动物类和方法,而且需要在printTheRightSound方法中增加一个elseif分支,这种设计对于代码维护和分离非常不友好

miao(); }else if ( $obj instanceof Dog ) { $obj->wang(); }else { echo "传递了错误的对象类型"; } echo PHP_EOL; } printTheRightSound( new Cat() ); printTheRightSound( new Dog() );?>

我们可以用继承的优势,改造上面的缺点

1 
makeSound();24 }else {25 echo "传递了错误的对象类型";26 }27 echo PHP_EOL;28 }29 30 printTheRightSound( new Cat() );31 printTheRightSound( new Dog() );32 printTheRightSound( new Chicken() );33 ?>

这样改造之后,printTheRightSound就不需要改动,只需要添加对应的动物类和方法即可

 

转载地址:http://zkgix.baihongyu.com/

你可能感兴趣的文章
MySQL忘记密码后重置密码(Mac )
查看>>
web.xml中的url-pattern映射规则
查看>>
图像的下采样Subsampling 与 上采样 Upsampling
查看>>
SQL 数据类型
查看>>
支付宝接口调用,支付操作
查看>>
如何在ashx页面获取Session值 (仅供个人参考)
查看>>
cookie与session
查看>>
Linux经常用到的命令以及快捷键
查看>>
计算题:挣值、预测、沟通、盈亏平衡点、
查看>>
js 实现 aop
查看>>
Dalvik VM和JVM的比较以及Android新的虚拟机ART
查看>>
【CSU 1803】2016
查看>>
SQLServer 批量备份与还原
查看>>
51Nod 1010 只包含因子2 3 5的数 Label:None
查看>>
Java中String和byte[]间的转换浅析
查看>>
什么是异步
查看>>
WordPress 主题切换
查看>>
cookie和session
查看>>
【java】path和classpath
查看>>
UVa 10057 - A mid-summer night's dream
查看>>