Correcting teacher:天蓬老师
Correction status:qualified
Teacher's comments:通过这个学习, 是不是觉得变量非常有意思, 非常重要?
<?php
//创建一个变量,默认就是全局作用域
$name1 = 'mafei';
//如果要在函数中引用此变量,使用global引用,例如
function aaa() : string
{
global $name1;
return $name1;
}
echo aaa() , '<br>';
//在函数中引用全局变量,也可以使用超全局变量GLOBALS实现,例如
function bbb() : string
{
$name2 = $GLOBALS['name1'];
return $name2;
}
echo bbb();
echo '<hr>';
//函数中创建的变量成为私有变量,在函数中的每次使用都会被格式化
function ccc() : int
{
$age = 20;
$age = $age + 2;
return $age;
}
echo ccc() , '<br>';
echo ccc() , '<br>';
echo ccc() , '<br>';
//函数中引用全局变量,不会每次都被格式化
$age = 30;
function ddd() : int
{
global $age;
$age = $age + 3;
return $age;
}
echo ddd() , '<br>';
echo ddd() , '<br>';
echo ddd() , '<br>';
//如果在函数中创建的私有变量,也不要每次都格式化,需要创建静态变量即可
function eee() : int
{
static $age = 40;
$age = $age + 1;
return $age;
}
echo eee() , '<br>';
echo eee() , '<br>';
echo eee() , '<br>';
echo '<hr>';
//查看所有过滤器以及过滤器的id
//foreach (filter_list() as $filter){
// echo $filter. '=>' . filter_id($filter) . '<br>';
//}
//1.过滤单个变量用filter_var()
$age = 20;
//整数过滤器
var_dump(filter_var($age, FILTER_VALIDATE_INT, ['options'=>['min_range'=>10,'max_range'=>30]]));
echo '<hr>';
//邮箱过滤器
$email = 'aaa';
$email = 'aaa@php.cn';
var_dump(filter_var($email, FILTER_VALIDATE_EMAIL));
echo '<hr>';
//过滤单个变量filter_var_array(),应该成为数组过滤器
var_dump(filter_var_array([100, 'aaa@php.cn'], FILTER_VALIDATE_EMAIL));
echo '<hr>';
//检测外部变量里面的get请求里面是否存在键值对
var_dump(filter_has_var(INPUT_GET, 'aaa'));
echo '<hr>';
echo 'get变量p = ' . $_GET['n'];
echo '<hr>';
//验证单个外部数据
var_dump(filter_input(INPUT_GET, 'n', FILTER_VALIDATE_INT, ['options'=>['min_range'=>30, 'max_range'=>3000]]));
echo '<hr>';
//同时验证多个外部数据
//先建立一个数据过滤器
$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]],
];
//验证多个外部数据
var_dump(filter_input_array(INPUT_GET, $args));
echo '<hr>';
//用函数define定义常量
define('NAME', 'aaa');
echo NAME , '<br>';
//用const定义常量
const NAME2 = 'bbb';
echo NAME2 . '<br>';
//用constant打印常量
echo constant('NAME') . '<br>';
//将常量的名称保存在变量里面
$a = 'NAME';
echo constant($a) . '<br>';
//建立一个名称为空的常量
define('', 'mafei');
//constant可以打印名称为空的常量
echo constant('');
echo '<hr>';
//魔术常量
echo '当前行号' . __LINE__ . '<br>';
echo '当前文件' . __FILE__ . '<br>';
echo '当前目录' . __DIR__ . '<br>';
echo '<hr>';
//在函数中使用魔术常量
function aaa111()
{
echo __FUNCTION__;
}
aaa111();
//在类中使用魔术常量
class ccc
{
public function index()
{
echo __METHOD__;
}
}
(new ccc)->index();
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
使用场景。 | define | const |
---|---|---|
函数 | 可用 | 不可用 |
流程控制 | 可用 | 不可用 |
类 | 不可用 | 可用 |