批改狀態(tài):合格
老師批語:命名空間, 就是電話區(qū)號, 并無特別之處
匿名函數(shù),命名空間,類的認識
實例代碼
<?php //匿名函數(shù)與閉包 //php不區(qū)分匿名函數(shù)與閉包 //匿名函數(shù),本質(zhì)就是函數(shù)表達式 //應用場景-1:匿名函數(shù)作為值來使用 $sum = function ($a,$b){ return $a+$b; }; echo $sum(25,25);//50 echo'<hr>'; //匿名函數(shù)用在什么地方 //應用場景-2:作為回調(diào)參數(shù)來使用 //回調(diào):回頭調(diào)用---某一步先決條件執(zhí)行后再執(zhí)行的操作 $numberPlusOne = array_map(function($number) { return $number + 1; }, [1, 2, 3]); //數(shù)組單元+1 print_r($numberPlusOne);//Array ( [0] => 2 [1] => 3 [2] => 4 ) echo'<hr>'; //自定義排序 $arr = [9,6,3,8,5,2,7,4,1]; usort($arr,function($a,$b){ return $a-$b; }); print_r($arr);//Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5 [5] => 6 [6] => 7 [7] => 8 [8] => 9 ) echo'<hr>'; //作用三-3:獲取父級作用域里的變量 //匿名函數(shù)引用父級元素的的值 $name = 'xiong'; $fl = function()use($name){ return $name; }; echo $fl(); echo'<hr>'; // 案例 // 父級函數(shù) function demo(){ $name ='zhi'; return function()use($name){ return $name; }; } echo demo()();//zhi //函數(shù)的聲明: function func_name() {} //函數(shù)的調(diào)用: func_name(); // //參數(shù): 必選參數(shù),可選參數(shù)/默認參數(shù), 剩余參數(shù) // //匿名函數(shù) //1. 值 //2. 回調(diào) //3. 閉包
點擊 "運行實例" 按鈕查看在線實例
<?php // 命名空間 namespace _9029_1; include __DIR__.'/inc/function.php'; function sum($a,$b){ return $a +$b; } //不帶命名空間 echo sum(20,30);//50 執(zhí)行的是當前命名空間下的sum(加法)函數(shù) echo'<hr>'; //帶了關(guān)鍵字namespace時執(zhí)行的也是加法sum,代表namespace==\_9029_1 也就是當前的命名空間 echo namespace\sum(20,30);//50 執(zhí)行的是加法運算 echo'<hr>'; echo \_9029_1\sum(30,30);//60 執(zhí)行的是加法運算 echo'<hr>'; //引入其它空間的sum函數(shù) echo \_0929_f\sum(30,15);//450 sum執(zhí)行的乘積運算 echo'<hr>'; // 命名空間---類似一棟樓里面可以有好多樓層。而每個樓層又可以有許多房間 //例如一單元5樓501,502,503等等,你要去找 一單元503,只能先去找到一單元,然后去找5樓,最后找到503 namespace _1_501; // 類的聲明:關(guān)鍵字 class class D501 { // 一單元可以有501 public $name = '一單元501'; } namespace _2_501; class D501 { // 二單元也可以有501 public $name = '二單元501'; } namespace _3_501; class D501 { // 三單元也可以有501 public $name = '三單元501'; } // 此時這個實例話在_3_501的命名空間下。所以只輸出了該空間下的那么屬性 // 通過new關(guān)鍵字來實例化類,成為對象,然后用對象去訪問類的屬性 $obj = new D501(); echo '我要去->'.$obj->name.'<br>';//我要去->三單元501 // 此時引入命名空間.。通過不同的命名空間,去實例化名稱相同的類,不會有沖突 $obj = new \_1_501\D501(); echo '我要去->'.$obj->name.'<br>';//我要去->一單元501 $obj = new \_2_501\D501(); echo '我要去->'.$obj->name.'<br>';//我要去->二單元501 //命名空間的作用 //1,用來區(qū)分名稱相同的類,方法,變量或其它; //2.起到了保護作用,在不同空間的數(shù)據(jù),不會互相干擾 // 類通過關(guān)鍵字 class 來聲明,首字母一般大寫 ,里面可以有屬性,方法等等 //一般情況下。想要訪問類中的屬性或方法,要先實例話類的對象,然后用對象利用->符號來訪問相應的成員;
點擊 "運行實例" 按鈕查看在線實例
總結(jié):
匿名函數(shù),本質(zhì)就是函數(shù)表達式
1,可以賦值到變量上,按值調(diào)用,但要注意,此時它的類型是對象
2,可以當成回調(diào)函數(shù)來執(zhí)行
3.可以做為閉包使用
命名空間的作用
1,用來區(qū)分名稱相同的類,方法,變量或其它;
2.起到了保護作用,在不同空間的數(shù)據(jù),不會互相干擾
類通過關(guān)鍵字 class 來聲明,首字母一般大寫 ,里面可以有屬性,方法等等
一般情況下。想要訪問類中的屬性或方法,要先實例話類的對象,然后用對象利用->符號來訪問相應的成員;
微信掃碼
關(guān)注PHP中文網(wǎng)服務號
QQ掃碼
加入技術(shù)交流群
Copyright 2014-2025 http://ipnx.cn/ All Rights Reserved | php.cn | 湘ICP備2023035733號