导读:我们继续学习container 类
接着我们昨天的问题
Slim/Container.php
private function exceptionThrownByContainer(\InvalidArgumentException $exception)
{
//这里的getTrace,就是InvalidArgumentException中的一个方法。
$trace = $exception->getTrace()[0];
return $trace['class'] === PimpleContainer::class && $trace['function'] === 'offsetGet';
}
昨天说 return trace['class'] === PimpleContainer::class &&trace[‘function’] === ‘offsetGet’; 没有看明白,今天特地分析下。
先看这句 $trace['class'] === PimpleContainer::class
执行顺序如下:
1.PimpleContainer::class 返回 PimpleContainer
2.判断 $trace['class'] 是否全等于 PimpleContainer
再看$trace['function'] === 'offsetGet'这句。
这句简单,就是判断 $trace['function'] 是否全等于 'offsetGet'
合起来就是看前后两个结果是否为 true 或者 false.
结束语:今天有些头疼。就先到这里,明天继续。