9.part7-1day php超级全局变量、魔术常量和命名空间

学习目的:了解一些内置的方法

一、超级全局变量

有9个,分别为$GLOBALS,$_SERVER,$_REQUEST,$_POST,$_GET,$_COOKIE,$_SESSION,$_FILES,$_ENV

1.$GLOBALS在函数内部引用全局变量

2.$_SERVER保存关于报头、路径和脚本位置的信息,以下简单列举了几个:

<?php
    $_SERVER['PHP_SELF'];  //返回当前执行脚本的文件名
    $_SERVER['SERVER_NAME']; //返回执行脚本所在的服务器的主机名
    $_SERVER['HTTP_HOST'];  //返回来自当前请求的Host头
    $_SERVER['HTTP_REFERER']; //返回当前页面的完整URL
?>

3.$_REQUEST用于收集html表单提交的数据,默认情况下包含了$_GET,$_POST,$_COOKIE的数组,$_REQUEST['fname']; 提取名为fname的表单

4.$_POST用于收集采用method="post"的html表单

5.$_GET用于收集采用method="get"的html表单

6.$_COOKIE, $_SESSION 后面会在讲cookie和session讲

7.$_FILES http文件上传变量(已经弃用)

8.$_ENV 环境变量(已经弃用)

二、魔术常量

有8个,分别为:__LINE__,__FILE__,__DIR__,__FUNCTION__,__CLASS__,__TRAIT__,__METHOD__,__NAMESPACE__

1.__LINE__ 文件中当前的行数

2.__FILE__ 文件的完整路径和文件名

3.__DIR__ 文件所在的目录

4.__FUNCTION__ 函数名称(区分大小写)

5.__CLASS__ 类的名称(区分大小写)

6.__TRAIT__ Trait的名称

7.__METHOD__ 类的方法名(区分大小写)

8.__NAMESPACE__ 当前命名空间的名称(区分大小写)

使用方法:

<?php
    echo "this is line" . __LINE__;      //其他的也一样用
?>

三、命名空间

1.命名空间有什么用

解决用户编写代码与php内部的类、函数、常量或是第三方的类、函数、常量之间的名字冲突

2.如何定义命名空间

默认情况下所有常量、类和函数名都放在全局空间下。命名空间通过关键字namespace来声明,如果一个php文件包含命名空间,它必须在其他所有代码之前声明命名空间,例子如下:

 
<?php
    namespace MyProject;
    namespace MyProjectSub; //子命名空间
    //编写代码
?>

3.命名空间的使用

用as命别名区分不同命名空间中的相同的类名

<?php
    require_once test1.php;
    require_once test2.php;
     
    use MyProjectTest as parentClass;    //调用命名空间MyProject里的test类 并且名了一个别名parentClass
    use MyProjectSubTest as childClass;   //调用命名空间MyProject的子命名空间Sub里的test类 并且名了一个别名childClass
 
    parentClass::view();  //调用命名空间MyProject里的test类里的方法
    childClass::view();//调用命名空间MyProject的子命名空间Sub里的test类里的方法
?>
原文地址:https://www.cnblogs.com/ldwtry/p/12170150.html