PHP的命名空间

首先

虽然它是基础的部分,但是PHP的命名空间还是相当容易理解的。
这是我自己学习用的,如果有错误请留下评论。

名称空间

为了避免变量和函数的冲突,命名空间被用于在js中创建空对象来实现,但在PHP中更加直观易懂。

要创建命名空间,使用namespace进行创建。

<?php
namespace myLib\lib;

function showAge(){
  echo '55';
}

const NICK_NAME = '加藤';

class User{
  public $name = '佐藤';
}
?>
<?php

require 'User.php';

$user = new myLib\lib\User();
echo $user -> name;//佐藤

myLib\lib\showAge();//55

echo myLib\lib\NICK_NAME;//加藤

?>

命名空间的规则

只能在命名空间前面进行声明语句的编写,如果有html等描述就会出现错误。

<!DOCTYPE html>
<?php
namespace myLib\lib;//Fatal error

class User{
  public $name = '佐藤';
}
?>

命名空间的层次结构

与目录相同,命名空间可以具有层次结构。
使用反斜杠(\)来定义层次结构。

namespace myLib\lib;

简化命名空间引用的方法是使用”用”关键词。

假设在下述情况中,出现了多个命名空间的引用。
这种情况下,我们使用 “use 命名空间标识符 as 标识符名” 的语句。

<?php

require 'User.php';

$user = new myLib\lib\User();
echo $user -> name;//佐藤

myLib\lib\showAge();//55

echo myLib\lib\NICK_NAME;//加藤

?>

使用

<?php

require 'User.php';

use myLib\lib as lib;

$user = new lib\User();
echo $user -> name;//佐藤

lib\showAge();//55

echo lib\NICK_NAME;//加藤

?>

结束

除此之外还有很多其他的东西,我会继续补充。