
批改狀態(tài):合格
老師批語(yǔ):不要用stdclass當(dāng)類(lèi)名
魔術(shù)常量可以獲取當(dāng)前文件的路徑和ip和文件名等等系統(tǒng)信息
```php
<?php
namespace str1;
//1.變量的作用域
//a.全局作用域
//在函數(shù)外定義的變量都是全局變量
$name = 'angle';
$email = 'angle@163.com';
function student(string $email):int{
//b.函數(shù)作用域
//在函數(shù)內(nèi)定義的變量作用域只有在函數(shù)內(nèi)部
$age = 32 ;
//如果想在函數(shù)內(nèi)部使用全局變量,必須聲明后使用
global $name;
//在函數(shù)內(nèi)部可直接使用超全局變量
echo $_SERVER['SCRIPT_FILENAME'],'<br>';
echo '姓名:',$name,'<br>';
echo '郵箱:',$email,'<br>';
return $age;
}
$age=student($email);
echo '年齡:',$age,'<br>';
//c.超全局變量
//在函數(shù)內(nèi)部和外部都可直接使用,用$GLOBAL聲明
//$GLOBAL['name'];//
//使用最多的是系統(tǒng)自定義的超全局變量
echo $_SERVER['SERVER_NAME'],'<br>';
echo '<hr>';
//2.靜態(tài)變量,使用static聲明的變量,一般用在函數(shù)中,只有在第一次調(diào)用函數(shù)時(shí)初始化,
function sum()
{
$sum = 0;
$sum = $sum +1;
return $sum;
}
echo sum(),’ ‘;
echo sum(),’ ‘;
echo sum(),’ ‘;
namespace str2;
function sum()
{
//使用static聲明后,只在第一次調(diào)用時(shí)初始化
static $sum = 0;
$sum = $sum + 1;
return $sum;
}
echo sum(),’ ‘;
echo sum(),’ ‘;
echo sum(),’<br>‘;
echo ‘<hr>‘;
//3.變量過(guò)慮器
$age = 200;
//a.單個(gè)變量過(guò)慮filter_var(變量名,過(guò)濾器名稱(chēng)或過(guò)濾器ID,過(guò)濾條件)
$isage = filter_var($age,FILTER_VALIDATE_INT,[‘options’=>[‘min_range’=>’1’,’max_range’=>’120’]]);
if ($isage)
{
echo ‘年齡驗(yàn)證通過(guò)<br>‘;
}
else
{
echo ‘年齡驗(yàn)證失敗<br>‘;
}
//b.驗(yàn)證多個(gè)變量
$isemail = filter_var_array([23,’angle’,’angle123@123.com’],FILTER_VALIDATE_EMAIL);
var_dump($isemail);
echo ‘<br>‘;
//c.驗(yàn)證是否存在指定的外部變量
// INPUT_GET: 表示要檢測(cè)的是$_GET,就是get參數(shù),其實(shí)就是get請(qǐng)求
// INPUT_GET, INPUT_POST, INPUT_COOKIE, INPUT_SERVER, INPUT_ENV
$ispag = filter_has_var(INPUT_GET,’page’);
if($ispag)
{
echo ‘有用戶(hù)提交的變量page<br>‘;//http://localhost/php11/0416/index.php?page=2
}
else
{
echo ‘沒(méi)有用戶(hù)提交的變量page<br>‘;//http://localhost/php11/0416/index.php
}
//d. 訪(fǎng)問(wèn)外部變量的過(guò)濾器,filter_input
$pagval = filter_input(INPUT_GET,’page’,FILTER_VALIDATE_INT,[‘options’=>[‘min_range’=>1]]);
if($pagval)
{
echo ‘頁(yè)碼正確<br>‘;//http://localhost/php11/0416/index.php?page=2
}
else
{
echo ‘非法頁(yè)碼<br>‘;//http://localhost/php11/0416/index.php?page=-1
}
// e. 同時(shí)驗(yàn)證多個(gè)外部變量: filter_input_array()
$userval = [
‘username’ => FILTER_SANITIZE_STRING,
‘email’ => FILTER_VALIDATE_EMAIL,
‘a(chǎn)ge’ =>[‘filter’=>FILTER_VALIDATE_INT,’options’=>[‘min_range’=>’18’]],
‘blog’ => FILTER_VALIDATE_URL
];
echo ‘<pre>‘.var_dump(filter_input_array(INPUT_GET,$userval)).’</pre>‘;
//angle@163.com&age=12&blog=http://ipnx.cn"">http://localhost/php11/0416/index.php?username=wangjiao&email=angle@163.com&age=12&blog=http://ipnx.cn
echo ‘<hr>‘;
//4.常量
//a.定義常量可以使用defint(‘’,’’) 和const 常量名=常量值來(lái)定義
//常量名一般都是大寫(xiě)字母
function test1(){
define('COURSE','PHP');//正確
//const COURSE='PHP';錯(cuò)誤 const不能用在函數(shù)中
echo '后端課程:',COURSE,'<br>';//可以直接使用常量名獲取常量值
}
test1();
if(true)
{
define('COURSE1','HTML');
//const COURSE1='HTML'; 錯(cuò)誤//const不能用在流程控制語(yǔ)句中
echo '前端課程:',constant('COURSE1'),'<br>';//也可用constant('常量名')函數(shù)獲取常量值
}
class stdclass
{
const SEX = 'male';//在類(lèi)中用const定義類(lèi)常量
}
echo '性別:',stdclass::SEX,'<br>';
const NAME='angle';//常量只能用標(biāo)量初始化,標(biāo)量:數(shù)值,字符串,布爾值,null
echo NAME,'<br>';
define('NAME1','Hugn');//不能用在類(lèi)中常量的定義
echo NAME1,'<br>';
print_r(get_defined_constants(true)['user']);//顯示所有用戶(hù)自定義的常量
// php7.0+支持?jǐn)?shù)組初始化常量
const STUDENT = [
'name'=>'angle',
'sex'=>'male',
'age'=>'32',
'iswork'=>'true'
];
echo '<pre>'.print_r(STUDENT,true).'</pre>';
//b.魔術(shù)常量 __魔術(shù)常量名__
//魔術(shù)??梢栽谌魏挝恢檬褂?/span>
if(true)
{
echo __DIR__,'<br>';//輸出當(dāng)前文件的路徑
}
function test2(){
echo __FILE__,'<br>';//輸出當(dāng)前文件的路徑和文件名
}
test2();
class testclass{
const DIRSTR = __FILE__;
}
echo '文件路徑:',testclass::DIRSTR;
?>
```
微信掃碼
關(guān)注PHP中文網(wǎng)服務(wù)號(hào)
QQ掃碼
加入技術(shù)交流群
Copyright 2014-2025 http://ipnx.cn/ All Rights Reserved | php.cn | 湘ICP備2023035733號(hào)