PHP開發(17)-callback-readdir-is_dir-foreach-glob-PhpStorm
<?php /** * callback 回呼函數 */ echo "---------- callback Demo 1 ----------<br>"; call_user_func_array("fun",array(123,321)); // 列印結果:123 , 321 , 3 call_user_func_array("fun",array(123,321,444,555)); // 列印結果:123 , 321 , 444 function fun($one="1", $two="2", $three="3"){ echo "$one , $two , $three<br>"; } /** * 排除迴文數 * 迴文數:N位元中,第1個數字和最後N個數字相同 * strrev 反轉字串 */ echo "---------- callback Demo 2 ----------<br>"; demo(25,"test"); // 列印結果:10 12 13 14 15 16 17 18 19 20 21 23 24 // 也就是沒有列印迴文數:0 1 2 3 4 5 6 7 8 9 11 22 echo "<br>"; function demo($num, $n){ for ($i=0; $i<$num ; $i++){ if (call_user_func_array($n,array($i))) continue; echo $i." "; } } function test($i){ if ($i==strrev($i)) return true; else return false; } /** * */ echo "---------- callback Demo 3 ----------<br>"; //$filter = new Filter(); // 執行個體化Filter //$filter->one(1); // 調用Filter類裡面的one函數 //Filter::two(1); // 調用Filter類裡面的two靜態函數 // 函數one 排除3的整數倍 demo(25,array(new Filter(),"one")); // 列印結果:1 2 4 5 7 8 10 11 13 14 16 17 19 20 22 23 echo "<br>"; // 靜態函數two 排除所有包含字串3的數字 demo(25,array("Filter","two")); // 列印結果:0 1 2 4 5 6 7 8 9 10 11 12 14 15 16 17 18 19 20 21 22 24 echo "<br>"; class Filter{ function one($i) { if ($i % 3 == 0) { return true; } else { return false; } } static function two($i){ if (preg_match('/3/',$i)){ return true; }else{ return false; } } } /** * 測試檔案夾命令,隨便找一個程式的安裝目錄拷貝到項目下 * 遍曆指定目錄下所有目錄和檔案 * readdir() 函數返回目錄中下一個檔案的檔案名稱 * is_dir() 判斷給定檔案名稱是否是一個目錄 * readdir 列印結果: . 目前的目錄 * readdir 列印結果: .. 上一級目錄 */ echo "---------- opendir ----------<br>"; $dirname = "./demoFile2"; // 開啟目錄資源 $dir = opendir($dirname); // 讀取檔案 echo readdir($dir).'<br>'; echo readdir($dir).'<br>'; echo readdir($dir).'<br>'; while ($file = readdir($dir)){ $file = $dirname."/".$file; if (is_dir($file)){ echo "目錄:"; }else{ echo "檔案:"; } echo $file.'<br>'; } // 關閉目錄資源 closedir($dir); /** * 測試檔案夾命令,隨便找一個程式的安裝目錄拷貝到項目下 * 遍曆指定目錄下所有目錄和檔案(包含子目錄) * glob 返回匹配指定模式的檔案名稱或目錄 * glob 返回一個包含有匹配檔案 / 目錄的數組 * foreach 文法結構提供了遍曆數組的簡單方式 * foreach (array_expression as $value) 每次迴圈中,當前單元的值被賦給 $value 並且數組內部的指標向前移一步 * (因此下一次迴圈中將會得到下一個單元) */ echo "---------- opendir2 ----------<br>"; //fetchDir("demoFile1"); function fetchDir($dir) { foreach(glob($dir.'\*') as $file) { echo $file.'<br>',"\n"; if(is_dir($file)) { fetchDir($file); } } } fetchDir2("demoFile1"); function fetchDir2($dir) { foreach(glob($dir.'\*') as $file) { if(is_dir($file)) { echo "目錄:".$file.'<br>',"\n"; fetchDir2($file); }else{ echo "檔案:".$file.'<br>',"\n"; } } }
以上就是PHP開發(17)-callback-readdir-is_dir-foreach-glob-PhpStorm 的內容,更多相關內容請關注topic.alibabacloud.com(www.php.cn)!