批改状态:合格
老师批语:理解的正确
| 全局作用域 | 函数之外的变量生效范围 |
|---|---|
| 函数作用域 | 使用 function 关键字创建的作用域 |
| 序号 | 变量类型 | 描述 |
|---|---|---|
| 1 | 私有变量 | 函数中定义的变量 |
| 2 | 全局变量 | 函数之外定义的变量 |
| 3 | 超全局变量 | 也叫预定义变量,访问不受作用域限制 |
//全局作用域$sitName = 'php中文网';//声明函数:同时也创建一个函数作用域function getInfo () : string{//在函数中无法访问全局作用域中的变量// $private = $sitName;//1.可通过关键字 global 声明函数中的私有变量global $sitName;//2.使用超全局变量:$GLOBALS//函数中可以直接访问超全局变量$private = $GLOBALS['sitName'];return $private;}echo getInfo();
| 序号 | 变量名 | 描述 |
|---|---|---|
| 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 |
通过环境方式传递给当前脚本的变量的数组 |
Static作用域当一个函数完成时,它的所有变量通常都会被删除。然而,有时候您希望某个局部变量不要被删除。要做到这一点,请在您第一次声明变量时使用 static 关键字:
function text3() :float{//局部静态变量 只在函数第一次调用的时候初始化,以后不会再被更新了//静态变量:可以理解为函数中的“伪全局变量”//实现函数在多次调用的过程中共享数据static $sum = 0;$sum = $sum + 1;return $sum;}echo text3().'<br>';echo text3().'<br>';echo text3().'<br>';
PHP过滤器用于验证和过滤来自非安全来源的数据。测试、验证和过滤用户输入或自定义数据是任何 Web 应用程序的重要组成部分。PHP 的过滤器扩展的设计目的是使数据过滤更轻松快捷。
| 序号 | 函数 | 描述 |
|---|---|---|
| 1 | filter_var() |
通过一个指定的过滤器来过滤单一的变量 |
| 2 | filter_var_array() |
通过相同的或不同的过滤器来过滤多个变量 |
| 3 | filter_input |
获取一个输入变量,并对它进行过滤 |
| 4 | filter_input_array |
获取多个输入变量,并通过相同的或不同的过滤器对它们进行过滤 |
//例一:$age =30;//过滤器在验证的时候都是将变量转换成字符串验证的,所以 //$age ='30',也是正确的$age ='30';//过滤单个变量 filter_var()var_dump(filter_var($age,FILTER_VALIDATE_INT);//例二://过滤多个变量filter_var_array()var_dump(filter_var_array([100,'php'],FILTER_VALIDATE_INT));//例三:var_dump(filter_input(INPUT_GET,'p',FILTER_VALIDATE_INT,['options'=>['min_range'=>1]]));//例四://同时验证多个外部变量:filter_input_array()$args=['username'=> FILTER_SANITIZE_STRING,'email'=>FILTER_VALIDATE_EMAIL,'age'=> ['filter'=>FILTER_VALIDATE_INT,'flags'=>FILTER_REQUIRE_SCALAR,'options'=>['min_range'=>18,'max_range'=>60]],'biog'=>FILTER_VALIDATE_URL,];var_dump(filter_input_array(INPUT_GET,$args));

| 序号 | 参数 | 描述 |
|---|---|---|
| 1 | name | 必选参数,常量名称,即标志符 |
| 2 | value | 必选参数,常量的值 |
| 3 | case_insensitive | 可选参数,如果设置为 TRUE,该常量则大小写不敏感。默认是大小写敏感的 |
| 序号 | 定义方式 | 描述 |
|---|---|---|
| 1 | get_defined_constants() |
查看系统所有常量 |
| 2 | defined() |
检测常量是否存在 |
| 3 | define() |
创建常量 |
| 4 | const 关键字 |
创建常量 |
| 5 | constant() |
获取常量值 |
get_defined_constants(true): 常量分组打印,自定义常量在user分组defined(): 返回布尔值。
// 不区分大小写的常量名define("GREETING", "欢迎访问 php.cn");echo greeting;//const 关键字定义const GREETING ='PHP';//常量不受作用域限制function test1(){//define()可以在函数中使用 ,const不能在函数中使用define('SEX','男');echo SEX;}test1();//流程控制中,define能用 ,const不能用if(true){define('EMAIL','123@163.COM');// const EMAIL = '123@163.com';echo EMAIL;}//const 用在类中,创建类常量class Demo1{const BBB = '123456@163.com';}echo Demo1::BBB;//常量通常只允许标量进行初始化//标量:单值变量,字符串,数值,布尔,null//php7.0支持数组初始化常量const DB_LINKS =['host'=>'localhost','username'=>'root','password'=>'root','charset'=>'utf8',];echo '<pre>'.print_r(DB_LINKS,true).'</pre>';// constant()define('','其实我也是一个常量');echo constant('');//魔术常量echo '当前行号:'.__LINE__.'<br>';echo '当前文件:'.__FILE__.'<br>';echo '当前目录:'.__DIR__.'<br>';function hello123(){echo __METHOD__;}hello123();echo '<hr>';class D {public function index(){echo __METHOD__;}}(new D)->index();
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号