学习目的:了解一些内置的方法
一、超级全局变量
有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类里的方法 ?>