-
i++和++i是什么意思?
都是i=i+1的意思,區別在于i++是i先不自加,在語句完后自加,++i先自加;列如a=1+i++;i本來為1的話,這里a=1+1;語句完后i才加1為2;
a=1+++i的話就先i=i+1;i=2.然后a=i+1,a=3查看全部 -
require:如果包含不存在的文件則會報出致命錯誤,代碼停止執行;
include:如果包含不存在的文件會提示,后面的代碼繼續執行;
*_once:文件只包含一次,而不加once則是寫幾次就會包含幾次
查看全部 -
遞歸函數:函數體自己調用自己,通過特定條件結束執行,__FUNCTION__,魔術變量,獲取函數名,遞歸函數用法:
查看全部 -
使用回調函數時直接將整個匿名函數作為參數寫進去
查看全部 -
回掉函數的使用方法:
查看全部 -
array_filter()過濾數組中的元素:
查看全部 -
array_walk()的使用方法:
<?php $arr?=?array(1,2,3,4,5,6,7,8); function?test1(&$var){//引用符號,指向存儲地址,會改變原元素的值 ????$var?*=3; ????return?$var; } $res?=?array_walk($arr,'test1');//將數組中的元素逐個取出作為實參放進函數中運行 var_dump($res);//布爾類型,成功則返回true print_r($arr);
查看全部 -
array_map(funcName,array);用法
<?php //對數組中的每個元素做函數處理 $arr?=?array(1,2,3,4,5,6); function?cheng($hah){ ????return?$hah*2; } var_dump(array_map('cheng',$arr));
查看全部 -
<?php function?add($x,$y){ ????return?$x+$y; } function?reduce($x,$y){ ????return?$x-$y; } function?calc($funcName,$x,$y){ ????return?$funcName($x,$y); } echo?calc('add',5,5);
查看全部 -
利用可變函數,形成回調函數: <?php function?eat(){ ????echo?"吃飯!"; } function?play(){ ????echo?"玩耍!"; } function?drink(){ ????echo?"喝水!"; } function?doWhat($funcName){ ????echo?"我正在:"; ????$funcName(); } doWhat('drink');//括號里面是字符串
查看全部 -
可變函數:將函數名賦值給字符串類型的變量(等量代換)
?get_defined_functions() - 得到已定義的所有函數
查看全部 -
傳值和傳引用的區別:
當在形參前面加個&表示穿引用(地址),此時調用函數的時候實參不能是值,只能是變量
查看全部 -
在函數外定義的變量稱之為全局變量;在函數內同樣無法直接使用!
要想在函數內使用全局變量:
1、通過global關鍵字:
<?php $i?=?1; $j?=?2; function?glo(){ ????global?$i;//或者寫成global?$i,$j; ????global?$j; ????$sum?=?$i?+?$j; ????return?$sum; } echo?glo();//輸出3
需要注意的是,當在函數內用global關鍵字使用了全局變量時,如果重新給全局變量賦值,則會改變全局變量的值:
<?php $i?=?1; $j?=?2; function?glo(){ ????global?$i;//或者寫成global?$i,$j; ????global?$j; ????$i?=?3; ????$j?=?5; } glo();//相當于global打通了函數內外 echo?$i,$j;//此時輸出3?5,而不再是1?2! //在函數體內創建全局變量: function?glo1(){ ????global?$m,$n;//注意不能在創建的同時給變量賦值:global?$m?=?1;會報錯! ????$m?=?1; ????$n?=?2; } glo1(); echo?$m,$n;
2、通過$GLOBALS超全局變量:$GLOBALS['變量名']
<?php function?jubu(){ ????$i?=?1; ????$j?=?2; } jubu(); $m?=?5; print_r($GLOBALS)?;//以數組形式包含所有全局變量,鍵名為變量名,鍵值為變量的值; print_r($GLOBALS['m']);//輸出5
查看全部 -
局部變量=》動態變量與靜態變量的區別:
1、動態變量在函數執行完之后立即被釋放;
2、靜態變量,由關鍵字static申明,當第一次調用函數的時候相當于初始化靜態變量,當函數執行完畢之后靜態變量并沒有被釋放而是保存在靜態內存中,當再次調用函數的時候首先靜態內存中取出變量的值接著執行!
<?php function?sta(){ ????static?$i?=?1; ????$i++; ????return?$i; } echo?sta()."<br>";?//輸出2 echo?sta()."<br>";?//輸出3 echo?sta()."<br>";?//輸出4 echo?"<hr>"; function?notSta(){ ????$i?=?1; ????$i++; ????return?$i; } echo?notSta()."<br>";//輸出2 echo?notSta()."<br>";//輸出2 echo?notSta()."<br>";//輸出2
查看全部 -
PHP獲取文件后綴名(提供7種方法):
$file = 'x.y.z.png';
echo substr(strrchr($file, '.'), 1);
解析:
substr(name,int):從指定位置開始向后取,從0開始計數strrchr($file, '.')? ?
?strrchr() 函數查找字符串在另一個字符串中最后一次出現的位置,并返回從該位置到字符串結尾的所有字符
2.$file = 'x.y.z.png';
echo substr($file, strrpos($file, '.')+1);
解析:strrpos($file, '.') ??
查找 "." 在字符串中最后一次出現的位置,返回位置 ? substr()從該位置開始截取
3.$file = 'x.y.z.png';
$arr=explode('.', $file);
echo $arr[count($arr)-1];
4.$file = 'x.y.z.png';
$arr=explode('.', $file);
echo end($arr); ?//end()返回數組的最后一個元素
5.$file = 'x.y.z.png';
echo strrev(explode('.', strrev($file))[0]);
6.$file = 'x.y.z.png';
echo pathinfo($file)['extension'];
解析:pathinfo() 函數以數組的形式返回文件路徑的信息。包括以下的數組元素:
[dirname]
[basename]
[extension]
7.$file = 'x.y.z.png';
echo pathinfo($file, PATHINFO_EXTENSION);
總結:字符串截取2種,數組分割3種,路徑函數2種查看全部
舉報