Correcting teacher:天蓬老师
Correction status:qualified
Teacher's comments:继续坚持
序号 | 变量名 | 描述 |
---|---|---|
1 | $GLOBALS |
引用全局作用域中可用的全部变量 |
2 | $_SERVER |
服务器和执行环境信息 |
3 | $_GET |
HTTP GET 请求:通过 URL 参数传递给当前脚本的变量的数组 |
4 | $_POST |
HTTP POST 请求: 将变量以关联数组形式传入当前脚本 |
5 | $_FILES |
HTTP 文件上传变量,保存着上传文件的全部信息 |
6 | $_COOKIE |
通过 HTTP Cookies 方式传递给当前脚本的变量的数组 |
7 | $_SESSION |
当前脚本可用 SESSION 变量的数组 |
8 | $_REQUEST |
默认情况下包含了 $_GET ,$_POST 和 $_COOKIE 的数组 |
9 | $_ENV |
通过环境方式传递给当前脚本的变量的数组 |
<?php
//声明全局变量$a
//全局变量会自动注册为超全局变量数组$GLOBALS的一个值
$var = "hello";
(print_r($GLOBALS));
echo '<br>';
function demo(): string {
//私有变量拿不到全局变量$var的值,会报错
// $letter = $var;
//通过global获取全局变量
global $var;
$letter = $var;
return $letter;
}
function demo2(){
//通过超全局变量获取全局变量值
$private = $GLOBALS['var'];
return $private;
}
echo demo(),'<br>';
echo demo2();
<?php
namespace ns1;
//定义函数,返回$i自增的值
function test1() : int {
$i = 0 ;
return $i++;
}
//每次调用函数,返回的值都是1
echo test1(),"<br>";
echo test1(),"<br>";
echo test1(),"<br>","<hr>";
namespace ns2;
//将$j定义为全局变量,实现数据共享,但不推荐进行数据改变
$j = 0 ;
//定义函数,返回$j自增的值
function test2() : int {
global $j;
return $j++;
}
//每次调用函数,返回的值都会+1
echo test2(),"<br>";
echo test2(),"<br>";
echo test2(),"<br>","<hr>";
namespace ns3;
//定义函数,返回$k自增的值
function test3() : int {
//用static关键字,将$k声明为静态变量
static $k = 0 ;
return $k++;
}
//每次调用函数,返回的值都会+1
echo test3(),"<br>";
echo test3(),"<br>";
echo test3(),"<br>";
获取过滤器
int => 257
boolean => 258
float => 259
validate_regexp => 272
validate_domain => 277
validate_url => 273
validate_email => 274
validate_ip => 275
validate_mac => 276
string => 513
stripped => 513
encoded => 514
special_chars => 515
full_special_chars => 522
unsafe_raw => 516
email => 517
url => 518
number_int => 519
number_float => 520
magic_quotes => 521
add_slashes => 523
callback => 1024
foreach (filter_list() as $filter) {
echo $filter . ' => ' . filter_id($filter) . '<br>';
}
echo '<hr>';
过滤器用法举例
<?php
// INPUT_GET: 表示要检测的是$_GET,就是get参数
// INPUT_GET, INPUT_POST, INPUT_COOKIE, INPUT_SERVER, INPUT_ENV
// 访问外部变量的过滤器,filter_input
//校验get参数是否有page,并且页码是否大于等于1
var_dump(filter_input(INPUT_GET, 'page',FILTER_VALIDATE_INT, ['options'=>['min_range'=>1]]));
// 同时验证多个外部变量: filter_input_array()
echo '<hr>';
//校验name是否存在且为字符串
//校验邮箱是否存在切格式正确
$args = [
'username' => FILTER_SANITIZE_STRING,
'email' => FILTER_VALIDATE_EMAIL,
];
var_dump(filter_input_array(INPUT_GET, $args));
常量声明:
//define()函数
define("常量名" ,常量值);
// const 关键字
const COURSE = 'PHP';
常量名是一个字符串,通常使用大写英文表示,例如 CLASS_NAME , MYAGE等。
__FILE__
:文件完整路径和文件名__LINE__
:PHP代码行数PHP_VERSION
:PHP版本PHP_OS
:执行php解析的操作系统TRUE
:真值FALSE
:伪值E_ERROR
:指到最近的代码错误E_WARNING
:最近的代码警告E_PARSE
:语法问题E_NOTICE
:异常提醒__DIR__
:文件所在目录__FUNCTION__
:函数被定义时的名字,区分大小写__CLASS__
:类被定义时的名字,区分大小写
<?php
define ("COUNTRE","China");
const PROVINCE = "广州";
echo COUNTRE;
echo '<br>';
echo constant("PROVINCE");
echo '<br>';
echo (__FILE__),'<br>';
echo (__LINE__),'<br>';
echo (PHP_VERSION),'<br>';
echo (PHP_OS),'<br>';
//定义类
class FirstClass{
//定义类函数
function test(){
echo (__FUNCTION__);
echo '<br>';
echo (__CLASS__);
}
}
//创建类匿名对象调用类函数
(new FirstClass)->test();