課時83 PHP引用參數的函數php
1.只有在內存中的變量,纔有地址.數組
2.有引用關係的兩個變量,一個改變,另外一個也改變閉包
3.若是在函數中,有&出現,說明這個參數是一個引用參數,在調用時傳參數時,就必須傳一個變量.less
課時84 PHP默認參數的函數函數
1.默認參數必定順序要在後面, 默認參數後不能有沒加默認參數的變量.ui
課時85 PHP可變個數參數的函數spa
1.$arr = func_get_args();遞歸
此函數能夠接收全部變量. 造成一個數組.索引
2.func_num_args(); 輸出參數個數'內存
3.
function demo() {
$sum = 0;
if($i=0; $i<func_num_args();$i++){
$sum += func_get_arg($i);
}
return $sum;
}
課時86 PHP變量函數
1. function add($a,$b){
return $a+$b;
}
$var = "add";
echo $var(40,23);
2.若是將一個函數名稱給一個變量(字符串),而後在這個變量後面加上括號就會調用這個函數.
課時87 PHP回調函數
1.在使用一個函數的時候,若是傳一個變量不能解決多大的問題,就須要傳一個過程進入到函數中.改變函數的執行行爲.
2.在函數的調用中,在參數中傳遞的不是一個變量或一個值,而是一個函數,這就是回調函數.
課時88 PHP製做回調函數1
<?php
function demo($n,$num){
$num = "aida";
for($i=0;$i<$n;$i++){
if($num($i)){
continue;
}
echo $i."<br>";
}
}
function aida($i){
if($i>10 && $i<20){
return true;
}
}
echo demo(100,"aida");
?>
用了回調函數,用了變量函數.
課時89 PHP製做回調函數2
/*
function demo($num,$n){
//if($n($i))
for($i=0;$i<$num;$i++){
if(call_user_func_array($n,array($i))){
continue;
}
echo $i."<br>";
}
}
function test($i){
if($i == strrev($i)){
return true;
}
else{
return false;
}
}
demo(500,"test");
*/
課時90 PHP製做回調函數3
function demo($num,$n){
//if($n($i))
for($i=0;$i<$num;$i++){
if(call_user_func_array($n,array($i))){
continue;
}
echo $i."<br>";
}
}
class filter{
function one($i){
if($i%3==0){
return true;
}
}
static function two($i){
if(preg_match('/3/',$i)){
return true;
}
}
}
function test($i){
if($i == strrev($i)){
return true;
}
else{
return false;
}
}
//demo(500,array(new filter(),"one"));
demo(500,array("filter","two"));
課時91 PHP系統函數
$dirname = 'd:\music';
function dirfor($dirname){
$dir = opendir($dirname);
readdir($dir);
readdir($dir);
while( $file = readdir($dir)){
$file = $dirname."\\".$file;
if( is_dir($file)){
echo "目錄:".$file."<br>";
dirfor($file);
}else{
echo "文件:".$file."<br>";
}
}
closedir($dir);
}
dirfor($dirname);
課時92 PHP遞歸函數
函數調用本身就是遞歸.
課時93 PHP加載自定義的函數庫
1.
include();
require();
require和include都是調用調用頁面的函數, 但require是程序執行必需要的文件,若是發現不存在,就會報致命錯誤.而include只是程序執行所包含的文件,若是發現不存在,就只會警告文件不存在.
補充: require沒有返回值,而include沒有,因此require的執行速度比include快.
避免一次包含同一文件,使用require_once()或include_once().但能用require時就別用require_once(),由於效率高.
2.include包含文件的同時又執行了非PHP文件.
若是是非PHP文件,就直接輸出.
課時94 PHP5.3的新特性匿名函數
1.匿名函數
$var = function(){
}; //必定要加分號結束
也叫閉包函數.
課時95 PHP閉包函數(closures)的概念
1.子函數可使用父函數的局部變量,就叫作閉包.
function demo(){
$a = 10;
$var = function($n) use ($a){
echo $n."<br>";
echo $a;
};
$var(5);
}
demo();
課時96 PHP閉包函數(closures)的特性
閉包函數返回時,該函數內部變量處於激活狀態,函數坐在棧區仍然保留.
課時98 PHP數組的概述
課時99 PHP數組的基本概念及分類
1.數組的內容叫作"元素".
2.鍵值對
3.索引數組,關聯數組
課時100 PHP數組聲明的特性
1.[ ]來操做下標,也可使用{}. 但建議使用[ ].
2.數組中的[ ]在字符串中不算是特殊符號.
3.下標02不會是一個合法的十進制數,因此不會強制轉換.
4.下標true會轉換成1,false會轉換成0
5.下標是NULL就是空.
課時101 PHP索引和關聯數組及須要注意的細節
1. 下標相同的內容會被覆蓋.
2.數組的自動下標默認是從0開始,而後一直增加,只會是出現過的最大值+1.
3.關聯數組的字符串下標不會影響索引下標的排列規則.
4.負數也能夠作爲下標.
課時102 PHP使用array()聲明數組
1.函數若是返回的是數組, 那要用時能夠直接在函數後面加[ ]和下標. 例如 demo()[2];
2.數組聲明也可使用 $arr = ['2','3','5'];
課時103 PHP刪除數組中的值應用實例(猴子選大王)
1.在數組中把值變成null,下標還會在, 但用unset()會連下標都消失. 下標不會從新索引,須要使用array_values()函數從新索引.
2.
<?php
function xdw($m,$n){
$arr = array();
$a = "a";
for($i=0;$i<$m;$i++){
$arr[] = $a++;
}
$i=0;
while(count($arr)>1){
if(($i+1)%$n == 0){
unset($arr[$i]);
}else{
$arr[] = $arr[$i];
unset($arr[$i]);
print_r($arr);
}
$i++;
}
return $arr;
}
print_r(xdw(4,3));
?>
課時104 PHP二維數組的聲明與應用
課時105 PHP多維數組
1.若是二維數組爲空則會變成外層增長,裏層爲0;
$array[][]="23";
$array[][]=44;
只會在外層從0到1,內層都是0.
課時106 使用for循環遍歷數組
1.效率很高,就是數組的訪問方式.
2.count($arr)獲取數組長度.是數組的實際元素的個數.
3.for循環有一個條件,就是下標不能斷.必須是連續的.
課時107 使用foreach語句遍歷數組
1.foreach(數組 as 自定義變量){
......
}
2.foreach循環的次數取決與數組的個數
3.foreach會將數組中的元素,在每次循環中,一次將元素的值給自定義的變量.在每次循環中用到這個變量,即用到了當前的數組中的元素.
課時108 使用foreach語句遍歷數組的應用