我从事PHP框架的工作已经很多年了,并为我们的内部开源项目维护。
在更新此内容并保持PHP 7编码标准的同时,我注意到很多开发人员在代码中调用的类和名称空间中使用\。
例如
class ClassName extends ParentClass implements
\ArrayAccess,
\Countable,
\Serializable
{
// constants, properties, methods
}
或例如在类的函数中调用类
public function featured()
{
// Check for request forgeries
\Session::checkToken() or jexit(\Text::_('JINVALID_TOKEN'));
$user = \Factory::getUser();
$ids = $this->input->get('cid', [], 'array');
$values = ['featured' => 1, 'unfeatured' => 0];
$task = $this->getTask();
$value = \ArrayHelper::getValue($values, $task, 0, 'int');
}
为什么使用\,目的是什么,因为它也可以在没有\的情况下工作。
由于我看不到任何在线信息,因此在类和名称空间中使用\表示什么。
答案 0 :(得分:0)
在此进行解释:http://php.net/manual/en/language.namespaces.fallback.php
执行文件时,它具有自己的名称空间。在上面的页面中查看以下代码:
<?php
namespace A\B\C;
class Exception extends \Exception {}
$a = new Exception('hi'); // $a is an object of class A\B\C\Exception
$b = new \Exception('hi'); // $b is an object of class Exception
$c = new ArrayObject; // fatal error, class A\B\C\ArrayObject not found
?>
$a = new Exception('hi');
在当前名称空间(即A \ B \ C
$b = new \Exception('hi');
使用全局类Exception