摘要:
相信大家对trait已经不陌生了,早在5.4时,trait就已经出现在了PHP的新特性中。当然,本身trait也是特性的意思,但这个特性的主要能力就是为了代码的复用。 我们都知道,PHP是现代化的面向对象语言。为了解决C++多重继承的混乱问题,大部分语言都是单继承多接口的形式,但这也会让一些可以复用 阅读全文
摘要:
在之前,我们已经学习过Composer自动加载的原理,其实就是利用了PHP中的类自动加载的特性。在文末有该系列文章的链接。 PHP中类的自动加载主要依靠的是__autoload()和spl_autoload_register()这两个方法。今天我们就来简单的看一下这两个方法的使用。 __autolo 阅读全文
摘要:
很多面试官在面试的时候都会问一些面向对象的问题,面向对象的三大特性中,多态最主要的实现方式就是方法的重载和重写。但是在PHP中,只有重写,并没有完全的重载能力的实现。 重写,子类重写父类方法。 // 重写 class A { public function test($a) { echo 'This 阅读全文
摘要:
对于php来说,foreach是非常方便好用的一个语法,几乎对于每一个PHPer它都是日常接触最多的请求之一。那么对象是否能通过foreach来遍历呢? 答案是肯定的,但是有个条件,那就是对象的遍历只能获得它的公共属性。 // 普通遍历 class A { public $a1 = '1'; pub 阅读全文
摘要:
在PHP7之后,PHP中加入了匿名类的特性。匿名类和匿名方法让PHP成为了更现代化的语言,也让我们的代码开发工作越来越方便。我们先来看看匿名类的简单使用。 // 直接定义 $objA = new class { public function getName() { echo "I'm objA"; 阅读全文
摘要:
在之前,我们已经学习过Composer自动加载的原理,其实就是利用了PHP中的类自动加载的特性。在文末有该系列文章的链接。 PHP中类的自动加载主要依靠的是__autoload()和spl_autoload_register()这两个方法。今天我们就来简单的看一下这两个方法的使用。 __autolo 阅读全文
摘要:
很多面试官在面试的时候都会问一些面向对象的问题,面向对象的三大特性中,多态最主要的实现方式就是方法的重载和重写。但是在PHP中,只有重写,并没有完全的重载能力的实现。 重写,子类重写父类方法。 // 重写 class A { public function test($a) { echo 'This 阅读全文
摘要:
final关键字的使用非常简单,在PHP中的最主要作用是定义不可重写的方法。什么叫不可重写的方法呢?就是子类继承后也不能重新再定义这个同名的方法。 class A { final function testA(){ echo 'This is class A!', PHP_EOL; } } clas 阅读全文
摘要:
在PHP中,有两种包含外部文件的方式,分别是include和require。他们之间有什么不同呢? 如果文件不存在或发生了错误,require产生E_COMPILE_ERROR级别的错误,程序停止运行。而include只产生警告,脚本会继续执行。 这就是它们最主要的区别,其他方面require基本等 阅读全文
摘要:
之前的文章中,我们说过变量赋值的问题,其中有一个问题是对象在进行变量赋值的时候,直接就是引用赋值。那么到底真实情况是怎样呢? 之前变量赋值的文章 PHP的变量赋值 对象引用测试 在继续深入的学习PHP手册后,发现原来对象还真不是直接的引用复制。通过下面手册中的例子来进行分析: class Simpl 阅读全文