PHP知识难点TOP3,你都知道吗?

php虽然容易入门,但是要想深入,还是有些路要走的,今天我们就来聊聊php一些比较难理解的知识点。

use

php从5.3.0开始引入了一个叫作命名空间的新特征,让我们能够定义相同的类和处理与第三方库同名类的时候有了很好的解决方案,在一个命名空间里面能够包括类、函数、接口和常量,有了命名空间以后,在其他地方需要使用命名空间时,需要使用use引入该命名空间或者为该命名空间定义一个别名再使用,这是use的第一种使用情况,特别注意的是,这里的use并没有将其对应的文件加载进来。

在使用php的时候,我们发现有很多函数有一个回调函数的参数,我们可以使用匿名函数(也叫闭包来实现),同时,我们知道在php的函数里面无法直接用外部的变量,那么在闭包里面要使用外面的变量,怎么办呢?参考下面的例子,用use就可以做到,这是use的第二种用法。

至于use的第三种用法请看下面的Traits。

Traits

我们知道,php不像C++一样,是多继承语言,它是一种单继承语言,如果有时我们需要继承多个类怎么办?这个时候Traits就上场了,我们仅仅需要在类中用use声明多个trait,这样当前类中的同名方法覆盖trait,而trait又覆盖基类中的同名方法,属性也是一样的。

错误和异常的区别

不管是错误发生还是某种异常我们未捕获,我们的程序都会出现问题,而且不管是错误还是未捕获异常,二者的表现都是一样的,导致我们对错误和异常的理解总是很模糊,其实异常就是理论上程序没有问题,但是运行的时候,因为某些特殊的情况而终止了程序的运行,比如链接数据库的操作,如果一切都好,那么我们应该可以正常的链接数据库,但是当数据库的可用连接数没有了,或者无法链接数据库,那么这个时候,如果没有捕获这个异常,肯定是会出错的。

最后

如果大家觉得这篇文章还不错,请给予一个赞或者分享给你的好友,如果你有更多好的经验或问题,请在评论中和大家分享一下。

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180205A0F3HK00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励