首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

PHP实战技巧(3)实战中的类方法,语法解析

前言

恰好看到一个很短小又很有迷惑性的类方法,顺便给大家分解一下其语法。

适合人群

对PHP语法比较熟悉,或有一定框架使用经验的同学。

刚学完十天系列的话,理解起来比较困难。

代码

解析

class Kernel

无需多说,表示这是一个类。

protected

设置方法的可见性。有三个选项:

public 公开的,内外均可用

protected 受保护的,仅对象内部可用

private 私有的,仅当前对象可用

function reportException

定义方法名, 翻译成中文是 ,的意思。就是说,这个方法用于报告代码异常。

(Exception $e)

参数列表。

仅有一个参数”“,提示类型为 Exception,传入的参数必须是 类的实例化对象,否则会报错。这种用法在框架中非常常见,PHP目前主流的依赖注入,都是借此实现的。

注:Exception 类是PHP自带的一个异常处理类。

ExceptionHandler::class

返回 类的名称(包含命名空间) 这种用法大约是PHP5.3之后才有的。

$this->app[ExceptionHandler::class]

这样的语法,新人特别容易晕,其实拆开之后并不难理解。先将 去掉:

指向当前对象, 是对象的属性, 表示这是一个数组。完整的含义是:从当前对象的 app 属性中,取 这个键的值。

提问:你猜猜值是什么数据类型?

->report($e)

的左边必然是对象,右边是对象里的属性或方法。

答案:上面的“值”数据类型是对象(object)

方法说明

这是 Kernel 类中的一个方法,用于报告异常,它接受一个”Exception“类型的参数,之后调用ExceptionHandler类的report方法处理异常。

总结

新同学刚入门时,能看懂语法,但不会灵活使用,或者一堆陌生语法堆在一起时,就感觉一团乱麻。不要慌,所有看起来花里胡哨的功能,都是基础语法的灵活运用,一点点拆开,自然能够理解。

慢下来细细分析,不熟悉的语法立刻去查手册,写一点例子来求证,慢慢的就入门了。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180611B0RTJ200?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券