第一篇:黑馬程序員_PHP_課程同步筆記day18:PHP函數(shù)
【黑馬程序員】PHP課程同步筆記day18:PHP函數(shù)
PHP函數(shù) 1.概念
將一段常用的功能代碼,進(jìn)行封裝,然后起個(gè)名字,叫”函數(shù)” 使用函數(shù),可以減少我們的工作量。對(duì)于后期的項(xiàng)目維護(hù),十分方便。2.函數(shù)定義格式
Function functionName(形參1,形參2,形參3......){
函數(shù)的功能代碼
[return 參數(shù)r] } 函數(shù)語法格式說明:
Function是系統(tǒng)關(guān)鍵字,不分大小寫。
functionName是自定義的函數(shù)名稱。函數(shù)名的命名規(guī)則與變量一樣,只是不加$符號(hào)。
()定義函數(shù)時(shí)的參數(shù),該參數(shù)又稱為”形參”。
形式參數(shù):主要用來接收調(diào)用函數(shù)者,傳遞過來的數(shù)據(jù)。
形參可以是多個(gè),多個(gè)形參之間用逗號(hào)隔開,也可以沒有形參
形參其實(shí)就是一個(gè)變量的名稱,主要用來臨時(shí)存儲(chǔ)數(shù)據(jù)的。{}是函數(shù)的功能代碼。Return語句:
向誰返回內(nèi)容?誰調(diào)用了該函數(shù),就向誰返回。
返回什么內(nèi)容?該內(nèi)容的類型不限制,可以是任何數(shù)據(jù)類型
黑馬程序員濟(jì)南中心 編著
Return語句,一旦執(zhí)行,函數(shù)將中止。也就是return語句之后的函數(shù)代碼不再執(zhí)行。
Return 語句返回一個(gè)值,并退出函數(shù)。
3.函數(shù)調(diào)用
函數(shù)定義是不會(huì)自動(dòng)執(zhí)行的。函數(shù)必須要經(jīng)過調(diào)用,才能看到結(jié)果 調(diào)用函數(shù)和定義函數(shù)不分順序。4.函數(shù)參數(shù)
a)形式參數(shù)(形參):形參主要用來接收調(diào)用函數(shù)傳遞過來的數(shù)據(jù)。
i.形參一般是變量,不能是具體的值
ii.形參只能在函數(shù)內(nèi)部使用
b)實(shí)際參數(shù)(實(shí)參):向定義函數(shù)傳遞的數(shù)據(jù)
i.實(shí)參可以是具體值,也可以是一個(gè)變量
c)形參和實(shí)參的個(gè)數(shù),一般情況下必須一致 Function showInfo($a){ Echo “OK”;} $a = 100;showInfo($a);函數(shù)參數(shù)傳遞 1.值傳遞(拷貝傳值)將一個(gè)變量的值,”拷貝”一份,傳給形參
黑馬程序員濟(jì)南中心 編著
在函數(shù)內(nèi)部,對(duì)形參進(jìn)行了修改,而函數(shù)外的這個(gè)變量不會(huì)改變 函數(shù)內(nèi)的形參,與函數(shù)外的實(shí)參,是相互獨(dú)立的,沒有任何聯(lián)系的
在PHP中,默認(rèn)”值傳遞”的有:字符型、整型、浮點(diǎn)型、布爾型、數(shù)組、NULL
2.引用傳遞
將一個(gè)變量的地址傳給形參,即形參與變量指向的是”同一物”.變量和參數(shù)之間是相互聯(lián)系,修改一個(gè),另一個(gè)會(huì)跟著變。
參數(shù)在使用引用傳遞時(shí),需要在”形參”前加一個(gè)”&”符號(hào)?!睂?shí)參”前不能添加。
默認(rèn)引用傳地址:資源和對(duì)象
黑馬程序員濟(jì)南中心 編著
3.默認(rèn)參數(shù)
PHP支持默認(rèn)參數(shù)。
當(dāng)實(shí)參格式少于形參個(gè)數(shù)時(shí),那么少的那個(gè)實(shí)參可以用末日的形參來代替
匿名函數(shù)
1.概念
沒有名字的函數(shù)就是匿名函數(shù),它不能單獨(dú)定義也不能單獨(dú)調(diào)用 匿名函數(shù)一般用來給其他變量賦值的。
黑馬程序員濟(jì)南中心 編著
2.匿名函數(shù)的兩種用法
i.將匿名函數(shù)當(dāng)成一個(gè)數(shù)據(jù),賦給其他變量
ii.將匿名函數(shù)作為函數(shù)的參數(shù)來使用
變量作用域
變量作用域:就是變量生效的范圍
在PHP中三種變量作用域:全局變量、局部變量、超全局變量。1.全局變量
全局變量:在函數(shù)外部定義的變量,稱為”全局變量”。
黑馬程序員濟(jì)南中心 編著
全局變量,在網(wǎng)頁(yè)執(zhí)行完畢,就消失了。在JS中,全局變量,可以直接在函數(shù)內(nèi)部來使用 在PHP中,全局變量不能直接在函數(shù)內(nèi)部使用 2.局部變量
局部變量:在函數(shù)內(nèi)部定義的變量,稱為”局部變量”。局部變量,只能在函數(shù)內(nèi)部來使用 局部變量,在函數(shù)執(zhí)行完畢后就消失了。3.在局部作用域中訪問全局變量---global關(guān)鍵字
Global關(guān)鍵字,只能在函數(shù)內(nèi)部來使用
不能在使用global關(guān)鍵字時(shí),直接給變量賦值。只能是先聲明為全局,再賦值。
$GLOBALS超全局?jǐn)?shù)組
“超全局?jǐn)?shù)組變量”可以在網(wǎng)頁(yè)的任何地方使用,包括函數(shù)內(nèi)部和函數(shù)外部。$GLOBALS超全局?jǐn)?shù)組中包含的內(nèi)容有:$_GET、$_POST、$_COOKIE、$_FILES
黑馬程序員濟(jì)南中心 編著
第二篇:黑馬程序員_PHP_課程同步筆記day13:PHP基礎(chǔ)介紹
【黑馬程序員】PHP課程同步筆記day13:PHP基礎(chǔ)介紹
1.語言基礎(chǔ)
PHP文件的訪問,必須要經(jīng)過虛擬空間(域名),才能訪問PHP文件,不能本地直接訪問 Php文件的擴(kuò)展名:.php Php代碼的標(biāo)記: Php區(qū)分大小寫。但是函數(shù)名和關(guān)鍵字不區(qū)分大小寫。每一條語句,必須以英文下的分號(hào)(;)結(jié)束。2.語句結(jié)束符
每一條PHP語句,都要以英文狀態(tài)下的分號(hào)(;)結(jié)束。
PHP中的語法結(jié)構(gòu)(if、switch、for、while、do while、function、foreach等)不能加分號(hào)(;)結(jié)尾。
如果PHP代碼中,只有一條語句的話,可以省略分號(hào);如果是多條PHP語句,最后一條語句可以省略分號(hào)。3.注釋
HTML注釋: CSS注釋:/* */
黑馬程序員濟(jì)南中心 編著
JS注釋://或/* */ PHP的單行注釋://或# PHP的多行注釋:/* */ 注意:
PHP多行注釋不能嵌套
PHP的注釋在瀏覽器端同樣看不見
PHP變量
1.變量的概念
變量是臨時(shí)存儲(chǔ)數(shù)據(jù)的容器 變量是在內(nèi)存中存在和運(yùn)行的
變量是一個(gè)代號(hào)。用變量來代替一個(gè)數(shù)據(jù) 2.變量命名規(guī)則
變量名稱包含的字符有:a-z、A-Z、0-
9、_ 變量名只能以字母或下劃線開頭 變量名不能以數(shù)字開頭
PHP的變量前,必須加”$”符號(hào)?!?”不是變量名稱的一部分?!?”之后為變量名
PHP變量是區(qū)分大小寫的
PHP關(guān)鍵字,也可以作為變量名稱。如$if、$while等 PHP長(zhǎng)文件名如何表示
“駝峰式命名”:$getUserName “下劃線式命名”:$get_user_name
黑馬程序員濟(jì)南中心 編著
PHP變量操作
1.定義變量
PHP的變量不用提前定義,用的時(shí)候直接賦值即可.$name = “abc”;JS的變量在使用時(shí)要提前聲明。Var name=”abc”;2.變量賦值
使用”=”賦值號(hào),給變量進(jìn)行賦值(往容器中裝東西)。
“=”含義:將”=”右邊的運(yùn)算結(jié)果,賦值給”=”左邊的變量名稱,左邊不能是一個(gè)運(yùn)算表達(dá)式。
舉例:$a = $b + 10*24-26 3.讀取變量值
$name = “Mary”;Echo “我的名字叫$name”;4.判斷變量是否存在isset()如果一個(gè)變量的值不等于NULL,就返回TRUE,反之返回FALSE 5.判斷變量是否為空empty()對(duì)于empty來說,0、””、”0”、0.0、NULL、FALSE、array()認(rèn)為是空,返回TRUE,反之就返回FALSE.6.刪除變量unset()Unset()函數(shù)
語法:void unset(mixed $var[,mixed$....])提示:變量被刪除后,變量的返回值為NULL。
黑馬程序員濟(jì)南中心 編著
變量的值傳遞和引用傳遞
1、值傳遞
將變量的值”復(fù)制”一份,傳給另一個(gè)變量。
這兩個(gè)變量之間沒有任何聯(lián)系,修改其中一個(gè),另一個(gè)變量的值不會(huì)改變。在PHP中,哪些數(shù)據(jù)類型,默認(rèn)是”值傳遞”。包括:字符型、整形、浮點(diǎn)型、布爾型、數(shù)組、NULL。
在JS中,默認(rèn)是”值傳遞”包括:字符型、數(shù)值型、布爾型、undefined、NULL
黑馬程序員濟(jì)南中心 編著
2.引用傳地址
將一個(gè)變量的數(shù)據(jù)地址,”復(fù)制”一份,傳給另一個(gè)變量。這兩個(gè)變量,指向同一份數(shù)據(jù)。
在PHP中,默認(rèn)傳地址的數(shù)據(jù)類型有:對(duì)象、資源。在JS中,默認(rèn)傳地址的數(shù)據(jù)類型有:數(shù)組、對(duì)象、函數(shù)。
但是在PHP 中,也可以讓所有其他類似數(shù)據(jù),都變成”引用傳地址”,只需在引用的變量名前加”&”符號(hào).黑馬程序員濟(jì)南中心 編著
可變變量
一個(gè)變量的名稱,可以用另一個(gè)變量的值來充當(dāng)。如$$name;
實(shí)例:批量獲取表單提交值 代碼:
if(isset($_POST['ac'])&&$_POST['ac'] == “l(fā)ogin”){
黑馬程序員濟(jì)南中心 編著
foreach($_POST as $key=>$value){
/*
$$key = $value
$username = $key;
$password = $value
*/
$$key = $value;//可變變量
}
$sql = “INSERT INTO 007_news(username,password)VALUES('$username','$password')”;
echo $sql.“
”;} ?> PHP超全局變量數(shù)組
1.PHP中的超全局變量數(shù)組
$_GET:獲取地址欄中傳遞的參數(shù)。
黑馬程序員濟(jì)南中心 編著
$_POST:獲取表單method=”post”提交的數(shù)據(jù)
$_REQUEST:包含$_GET、$_POST、$_COOKIE上數(shù)組中的數(shù)據(jù) $_SERVER:獲取apache服務(wù)器或執(zhí)行環(huán)境的相關(guān)信息 $GLOBALS:獲取全局變量的各個(gè)數(shù)據(jù) $_SESSION:跟蹤用戶 $_COOKIE:跟蹤用戶 $_FILES:上傳文件 2.超全局變量$_POST的使用
描述:主要用來獲取表單method=”post”提交的數(shù)據(jù)。舉例:$username = $_POST[‘username’];3.實(shí)例:簡(jiǎn)單PHP計(jì)算器 代碼實(shí)現(xiàn):
if(isset($_POST['ac'])&&$_POST['ac'] == ”login“){
// 獲取表單提交值
$value1 = $_POST['value1'];
$value2 = $_POST['value2'];
$operator = $_POST['operator'];
//計(jì)算結(jié)果
switch($operator){
黑馬程序員濟(jì)南中心 編著
case 1:
$result = $value1 + $value2;
break;
case 2:
$result = $value1-$value2;
break;
case 3:
$result = $value1 * $value2;
break;
case 4:
$result = $value1 / $value2;
break;
case 5:
$result = $value1 % $value2;
} }else{
//網(wǎng)頁(yè)首頁(yè)下載完成時(shí),變量初始化
$value1 = ”“;
$value2 = ”“;
$operator =1;
$result = ”“;}
黑馬程序員濟(jì)南中心 編著
?>
超全局變量$_GET的使用$_GET可以獲取地址欄中參數(shù)的數(shù)組
發(fā)送GET數(shù)據(jù)的方法總結(jié)
1.通過表單method=”get”發(fā)送
黑馬程序員濟(jì)南中心 編著
3.通過JS的location對(duì)象也可以發(fā)送GET數(shù)據(jù)
4.使用PHP的header()函數(shù)傳遞參數(shù)
黑馬程序員濟(jì)南中心 編著
黑馬程序員濟(jì)南中心 編著
第三篇:黑馬程序員_PHP_課程同步筆記day30:PHP類中關(guān)鍵字
【黑馬程序員濟(jì)南】PHP課程同步筆記day30:PHP類中
關(guān)鍵字
今天我來為大家講解一下PHP類中的一些關(guān)鍵字: parent和self關(guān)鍵字 parent:
用在一個(gè)類的一個(gè)方法中;
代表這個(gè)類的“父類”——注意,是代表一個(gè)類,不是類的對(duì)象;
但:實(shí)際應(yīng)用中,常常會(huì)看起來“代表”這個(gè)類的父類對(duì)象——因?yàn)橛玫臅r(shí)候,是使用了父類的對(duì)象來調(diào)用某個(gè)方法而產(chǎn)生了所謂的對(duì)象傳遞; [PHP] 純文本查看 復(fù)制代碼 ? 01
黑馬程序員濟(jì)南中心 編著 1;//聲明靜態(tài)屬12 性 13 } 14 15 class B extends A{ static function f1(){ echo “父類的靜態(tài)屬性s1:”.parent::$s1;echo “父類的常量PI:”.parent::PI;} } B::f1();顯示結(jié)果:
父類的靜態(tài)屬性s1:1
父類的常量PI:3.14
黑馬程序員濟(jì)南中心 編著
self:
用在一個(gè)類的一個(gè)方法中;
代表這個(gè)類“本身”——還是代表一個(gè)類,而不是類的對(duì)象; [PHP] 純文本查看 復(fù)制代碼 ? 01
黑馬程序員濟(jì)南中心 編著
己的常量PI:”.self::PI;} } B::f1();典型使用1:
在構(gòu)造方法中,調(diào)用父類的構(gòu)造方法,以完成對(duì)象的一些共同的數(shù)據(jù)初始化工作。[PHP] 純文本查看 復(fù)制代碼 ? 01
04 class Member{ 05 public $name;//聲明一個(gè)變量 06 public $salary;//聲明一個(gè)變量 07 //創(chuàng)建一個(gè)構(gòu)造方法 08 function
09 __construct($name,$salary){ 10 $this->name = $name;//把實(shí)例11 化類時(shí)的實(shí)參傳遞給之前聲明好的變量 12 $this->salary = $salary;//把實(shí)例13 化類時(shí)的實(shí)參傳遞給之前聲明好的變量
黑馬程序員濟(jì)南中心 編著 } 15 } 16 class Teacher extends Member{ 17 public $edu;//聲明一個(gè)變量 18 //創(chuàng)建一個(gè)構(gòu)造方法 19 function __construct($name,$salary,$edu){ 21 //$this->name = $name;22 //$this->salary = $salary;23 //將上面兩行的內(nèi)容用下面一行類24 代替 //調(diào)用父類的構(gòu)造方法,去完成一個(gè)26 共同屬性數(shù)據(jù)的初始化 parent::__construct($name,$salar28 y);29 //把實(shí)例化類時(shí)的實(shí)參傳遞給之前聲30 明好的變量
$this->edu = $edu;32 } 33 } 34 class Student extends Member{ 35 public $age;//聲明一個(gè)變量
黑馬程序員濟(jì)南中心 編著
//創(chuàng)建一個(gè)構(gòu)造方法 37 function
__construct($name,$salary,$age){ 39
//調(diào)用父類的構(gòu)造方法,去完成一個(gè)41 共同屬性數(shù)據(jù)的初始化
parent::__construct($name,$salary);//把實(shí)例化類時(shí)的實(shí)參傳遞給之前聲明好的變量
$this->age = $age;} } $t1 = new Teacher(“老師”,1000,“大學(xué)”);echo “
”;var_dump($t1);echo “
”;$s1 = new Student(“學(xué)生”,100,18);var_dump($s1);
黑馬程序員濟(jì)南中心 編著
不知道大家對(duì)今天講解的parent和self關(guān)鍵字學(xué)習(xí)的程度如何啊?如果有興趣,歡迎來黑馬程序員濟(jì)南中心來詳細(xì)了解PHP~
黑馬程序員濟(jì)南中心 編著
第四篇:黑馬程序員_PHP_課程同步筆記day34:PHP類其他魔術(shù)方法
【黑馬程序員濟(jì)南】PHP類其他魔術(shù)方法
序列化:
就是將一個(gè)變量的“內(nèi)存數(shù)據(jù)形式”,轉(zhuǎn)換為“硬盤數(shù)據(jù)形式”的過程。
分2步就可以:
1,$str = serialize($變量);//該函數(shù)將該變量數(shù)據(jù),轉(zhuǎn)換為一個(gè)字符串
2,file_put_contents(“文本文件名”, $str);//將該字符串保存到該文件中。[PHP] 純文本查看 復(fù)制代碼 ? 01 5.5,'bbcc'=>true);13 $data3 = new A();
黑馬程序員濟(jì)南中心 編著 //開始轉(zhuǎn)換得到一個(gè)字符串 16 $str1 = serialize($data1);17 $str2 = serialize($data2);18 $str3 = serialize($data3);19 //開始寫入硬盤中 file_put_contents('./file1.txt',$str1);22 file_put_contents('./file2.txt',$str2);23 file_put_contents('./file3.txt',$str3);24
[align=left] 反序列化:
將已經(jīng)存到硬盤的變量數(shù)據(jù),轉(zhuǎn)換(恢復(fù))到內(nèi)存數(shù)據(jù)(變量)形式的過程。同樣分2步:
1,$str = file_get_contents(文本文件名);
//讀取出序列化之后所存儲(chǔ)的文件內(nèi)容(就是字符串)
2,$變量 = unserialize($str);
//將該字符串恢復(fù)為變量(數(shù)據(jù));
[PHP] 純文本查看 復(fù)制代碼 ? 01
黑馬程序員濟(jì)南中心 編著
02 //演示3中數(shù)據(jù)的序列化結(jié)果 03 class A{ 04 public $p1 = 1;05 protected $p2 = 2;06 private $p3 = 3;07 } 08
09 //開始從硬盤中讀取數(shù)據(jù)(字符串)10 $str1 = file_get_contents('./file1.txt');11 $str2 = file_get_contents('./file2.txt');12 $str3 = file_get_contents('./file3.txt');13 //開始轉(zhuǎn)換得到一個(gè)字符串 15 $data1 = unserialize($str1);16 $data2 = unserialize($str2);17 $data3 = unserialize($str3);18 var_dump($data1);20 var_dump($data2);21 var_dump($data3);結(jié)果為: float(1.1)
黑馬程序員濟(jì)南中心 編著
array(3){[0]=>string(2)“aa” [5]=>float(5.5)[“bbcc”]=>bool(true)} object(A)#1(3){[“p1”]=>int(1)[“p2”:protected]=>int(2)[“p3”:“A”:private]=>int(3)} __sleep():
該魔術(shù)方法是對(duì)一個(gè)對(duì)象進(jìn)行“序列化”的時(shí)候,會(huì)被自動(dòng)調(diào)用。
此時(shí),在該方法中,我們就可以(而且必須)返回一個(gè)數(shù)組,該數(shù)組中含所有我們“想要”對(duì)該對(duì)象的屬性進(jìn)行序列化的屬性名。[PHP] 純文本查看 復(fù)制代碼 ? 01
黑馬程序員濟(jì)南中心 編著 }
__wakeup()
該魔術(shù)方法是對(duì)一個(gè)對(duì)象進(jìn)行“反序列化”的時(shí)候,會(huì)被自動(dòng)調(diào)用。
此時(shí),該對(duì)象的屬性值,就會(huì)恢復(fù)到“原來的數(shù)據(jù)”
但:如果某個(gè)屬性當(dāng)時(shí)并沒有做序列化,則此時(shí)就不會(huì)恢復(fù)為原來對(duì)象的數(shù)據(jù),而是恢復(fù)為該類中的初始數(shù)據(jù); [PHP] 純文本查看 復(fù)制代碼 ? 01
黑馬程序員濟(jì)南中心 編著 $this->p1 = $p1;13 $this->p2 = $p2;14 $this->p3 = $p3;15 } 16 function __sleep(){ 17 return 18 array(“p1”,“p3”);19 } 20 function 21 __wakeup(){ 22 echo “對(duì)象蘇醒23 了。?!?24 } 25 } 26
$s1 = new S(11,12,13);$str = serialize($s1);var_dump($)
[align=left]
黑馬程序員濟(jì)南中心 編著
不知道大家對(duì)今天講的PHP類其他魔術(shù)方法相關(guān)技術(shù)學(xué)習(xí)的怎么樣???有什么疑問歡迎來黑馬程序員濟(jì)南中心來咨詢喲~
黑馬程序員濟(jì)南中心 編著
第五篇:黑馬程序員_PHP_課程同步筆記day17:數(shù)組介紹
【黑馬程序員】PHP課程同步筆記day17:數(shù)組介紹
數(shù)組 1.數(shù)組的概念
數(shù)組是一組值的集合,變量是單個(gè)值的容器,而數(shù)組是多個(gè)值的容器 2.數(shù)組的分類
1.枚舉數(shù)組:數(shù)組的下標(biāo)是從0開始的正整數(shù)
2.關(guān)聯(lián)數(shù)組:數(shù)組的下標(biāo)可以是字符串
$arr = array(“db_host” => “l(fā)ocalhost”, “db_user” => “root”, “db_pwd” =>”root”,);
3.混合數(shù)組:下標(biāo)既有整型的,也有字符串的
$arr = array(“db_host” => “l(fā)ocalhost”, “db_user” => “root”, “db_pwd” =>”root”, “黑馬程序員”, “濟(jì)南分?!?;
4.多維數(shù)組:數(shù)組的元素的值的類型是一個(gè)數(shù)組。數(shù)組套數(shù)組。數(shù)組元素的下標(biāo)只能是正整數(shù)和字符串。數(shù)組元素的值,可以是任何類型,當(dāng)然可以是數(shù)組。
黑馬程序員濟(jì)南中心 編著
$arr = array(Array(10,11,12,13), Array(20,21,22), Array(30,31), TRUE,NULL);3.數(shù)組的創(chuàng)建
a)使用array()來創(chuàng)建數(shù)組 $arr = array([$key=>]$value, [$key=>]$value, [$key=>]$value,.....);語法說明:
$key代表數(shù)組元素的下標(biāo),可以省略。
$key的類型可以是整型和字符型,如果$key省略,默認(rèn)的數(shù)組應(yīng)該是枚舉數(shù)組。$value代表數(shù)組元素的值,值可以是任何類型。“=>”重載下標(biāo),或者重新指定下標(biāo)。多個(gè)數(shù)組元素之間用英文下的逗號(hào)隔開。b)使用[]創(chuàng)建數(shù)組的語法
語法1:$arr[] = $value
黑馬程序員濟(jì)南中心 編著
說明: 1)如果數(shù)組不存在,則會(huì)創(chuàng)建一個(gè)數(shù)組 2)第一個(gè)元素就是下標(biāo)為0的元素 3)如果數(shù)組存在,則相當(dāng)于添加一個(gè)新元素 4)新元素的下標(biāo),應(yīng)該是最大整數(shù)下標(biāo)+1 語法2: $arr[$key] = $value 說明:
1)同時(shí)指定下標(biāo),指定的下標(biāo)是多少,就是多少。2)如果指定的數(shù)組不存在,也會(huì)創(chuàng)建一個(gè)數(shù)組 3)如果指定的數(shù)組存在,則添加一個(gè)新元素 $arr[] = 100;$arr[] = 200;$arr[5] = 500;$arr[“a”] = “abc”;多維數(shù)組
1、使用array()來創(chuàng)建多維數(shù)組
$arr = array(Array(10,11,12,13,14), Array(20,21,22,23), Array(30,31,32), Array(Array(40,41),黑馬程序員濟(jì)南中心 編著
Array(42,43)));
2、使用[]來創(chuàng)建多維數(shù)組
$arr[“name”] = “Mary”;$arr[“sex”] = “男”;$arr[“contact”][“tel”] = “11111111111”;$arr[“contact”][“qq”] = “11233321”;$arr[] = array(10,20,30);實(shí)例:用表格輸出二維數(shù)組 $arr = array(Array(“10010”,”Mary”,”大專”,”傳智專修學(xué)院”), Array(“10020”,”Kate”,”大?!?”傳智專修學(xué)院”), Array(“10030”,”James”,”大?!?”傳智專修學(xué)院”), Array(“10040”,”Kobe”,”大?!?”傳智專修學(xué)院”),);$str = “”;$str.= “
b)語法:print_r(mixed $expression)c)說明:如果給出的是string、interger或float,將打印變量值本身。如果給出的是array,將會(huì)按照一定格式顯示鍵和元素
2.Count()a)描述:統(tǒng)計(jì)數(shù)組有效數(shù)據(jù)的個(gè)數(shù)
b)說明:計(jì)算數(shù)組中的單元數(shù)目或?qū)ο笾械膶傩詡€(gè)數(shù)。c)語法:int count(mixed $var)d)參數(shù):$mode是否統(tǒng)計(jì)多維數(shù)組中的個(gè)數(shù) 3.Unset()a)描述:刪除變量或數(shù)組元素或者對(duì)象屬性 b)語法:void unset(mixed $var)c)返回值:無
d)注意:如果刪除變量的話,只是刪除變量名稱和到值之間的指向。如果刪除數(shù)組元素的話,值會(huì)被刪除,而下標(biāo)還在。如果刪除整個(gè)數(shù)組的話,而整個(gè)數(shù)組都不存在黑馬程序員濟(jì)南中心 編著
了。
實(shí)例:求一維數(shù)組中元素的平均值 $arr = array(1,2,3,4,5,6,7,8);$num = 0;$len = count($arr);For($i=0;$i<$len;++$i){ $sum += $arr[$i];} Echo “平均值為:”.$sum/$len;實(shí)例:求二維數(shù)組中元素的平均值 $arr = array(Array(10,11,12,13,14), Array(20,21,22,23), Array(30,31,32), Array(40,41), Array(50));$sum = 0;$len = 0;For($i = 0;$i 黑馬程序員濟(jì)南中心 編著 $len ++;} } Echo “平均值:”.round($sum/$len,2);實(shí)例:求一維數(shù)組中的最大值 $arr = array(9,2,3,45,5,7);$max = $arr[0];For($i=0;$i If($max<$arr[$i]){ 黑馬程序員濟(jì)南中心 編著 $max = $arr[$i];$max_index = $i;} //最小值 If($min>$arr[$i]){ $min = $arr[$i];$min_index = $i;} } //交換最大值和最小值的位置 $arr[$max_index] = $min;$arr[$min_index] = $max;數(shù)組遍歷:foreach 語法結(jié)構(gòu): Foreach($arr as [$key=>]$value){循環(huán)體代碼} 語法結(jié)構(gòu)說明: $arr代表當(dāng)前要遍歷的數(shù)組名稱 As是系統(tǒng)關(guān)鍵字 $key表示每一次取到元素的鍵名,可以省略 $value表示每一次取到元素的鍵值 如果數(shù)組指針指到數(shù)組的末端,則退出循環(huán) 實(shí)例:foreach遍歷一維數(shù)組 黑馬程序員濟(jì)南中心 編著 $arr = array(“name” => “Mary”, “sex” => “男”, “age” => 24);Foreach($arr as $key=>$value){ Echo “$arr[$key]=$value 黑馬程序員濟(jì)南中心 編著 } $str.=” 2.List()a)描述:把數(shù)組中的值(前幾個(gè)值)賦給一些變量 b)語法:array list(mixed $varname)c)舉例:list($name,$sex,$age)= array(“Kobe”,”男”,24,”高中”);i.說明:將數(shù)組中前三個(gè)元素的值,賦給list函數(shù)中的三個(gè)變量。 ii.數(shù)組中多余的值不需要 黑馬程序員濟(jì)南中心 編著 iii.要求數(shù)組必須是枚舉數(shù)組,下標(biāo)必須是從0開始的正整數(shù) iv.下標(biāo)必須是連續(xù)的,中間不能斷檔。 黑馬程序員濟(jì)南中心 編著
”;} 實(shí)例:foreach遍歷二維數(shù)組 $arr = array(“a” =>array(“10010”,”Mary”,”男”,24), “b”=>array(“10020”,”Kate”,”女”,20), “c” => array(“10030”,”Kobe”,”男”,40));$str = “”;$str.=””;Foreach($arr as $arr2){ $str.=”
”;Echo $str;實(shí)例:foreach 中的$value引用傳地址 $arr = array(1,2,3,4,5,6,7,8);Foreach($arr as &$value){ $value *=2;} Var_dump($arr);數(shù)組操作函數(shù) 1.each()a)描述:返回?cái)?shù)組中當(dāng)前的鍵/值對(duì)(數(shù)組元素)并將數(shù)組指針向前移動(dòng)一步 b)語法:array each(array &$array)c)返回值:返回array數(shù)組中當(dāng)前指針位置的鍵/值對(duì)并向前移動(dòng)數(shù)組指針。鍵值對(duì)被返回四個(gè)單元的數(shù)組。單元0和key包含有數(shù)組單元的鍵名,1和value包含有數(shù)據(jù)。”;Foreach($arr2 as $value){ $str.=” ”;$value ”;} $str.=”