【php】基础学习3
生活随笔
收集整理的這篇文章主要介紹了
【php】基础学习3
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
本節(jié)主要是php中函數(shù)的學(xué)習(xí):
1 <html xmlns=http://www.w3.org/1999/xhtml> 2 <head> 3 <meta http-equiv=Content-Type content="text/html;charset=utf-8"> 4 </head> 5 <body> 6 <?php 7 /* 8 * PHP中的函數(shù) 9 * 函數(shù)使用關(guān)鍵字function來(lái)定義 10 * 通常由函數(shù)名稱(chēng)、參數(shù)、函數(shù)體和返回值四部分組成 11 * ① 不允許函數(shù)重名 12 * ② 不能以數(shù)字開(kāi)頭,只能包括字母、數(shù)字和下劃線(xiàn) 13 * ③ 函數(shù)名不區(qū)分大小寫(xiě) 14 * ④ 可使用函數(shù)名直接調(diào)用,后跟需要傳入的參數(shù)并用小括號(hào)括起來(lái) 15 如果沒(méi)有需要傳入的參數(shù),則只寫(xiě)小括號(hào) 16 * ⑤ 在php腳本中,可以先調(diào)用函數(shù)而后定義函數(shù),誰(shuí)先誰(shuí)后沒(méi)有固定要求 17 */ 18 function returnNum($num1,$num2){ 19 $sum=$num1+$num2; 20 return $sum; 21 } 22 echo returnNum(3,5)."<br/>"; 23 24 /* 25 * 工作中,有時(shí)還會(huì)將任意數(shù)量的參數(shù)傳遞給函數(shù) 26 * php中func_num_args函數(shù)返回參數(shù)總數(shù),func_ge_args函數(shù)返回參數(shù)的具體信息 27 */ 28 function muti_parameters(){ 29 $all_parameters=func_get_args(); 30 foreach($all_parameters as $key=>$value){ 31 echo "鍵:$key=>值:$value<br/>"; 32 } 33 echo "函數(shù)體所含參數(shù)數(shù)量:".func_num_args()."<br/>"; 34 echo "執(zhí)行完一次muti_parameters函數(shù)<br/>"; 35 } 36 muti_parameters(1,2,3,'你好'); 37 muti_parameters(); 38 39 /* 40 * 按值傳遞 41 * php中出了對(duì)象類(lèi)型外,其他類(lèi)型的參數(shù)傳遞方式都是值傳遞 42 */ 43 function example($num){ 44 return $num*$num; 45 } 46 echo example(5)."<br/>"; 47 48 /* 49 * 按引用傳遞 50 * ① 引用傳遞方式是在形參前加上"&"號(hào) 51 * ② 按引用傳遞是將實(shí)參的內(nèi)存地址傳遞到形參中,所以不能直接傳遞值進(jìn)入函數(shù) 52 */ 53 //1 54 $num1=1; 55 function in_value(&$temp){ 56 $temp+=4; 57 echo '函數(shù)內(nèi)部temp='.$temp; 58 } 59 in_value($num); 60 echo "<br/>"; 61 echo '函數(shù)調(diào)用結(jié)束后實(shí)參$num='.$num."<br/>"; 62 //2 63 $num=3; 64 function in_value1(&$temp){ 65 $temp+=4; 66 echo '函數(shù)內(nèi)部temp='.$temp; 67 } 68 //in_value1(3);此時(shí)程序報(bào)錯(cuò)ERROR 69 70 /* 71 * 默認(rèn)參數(shù)值 72 * 在php中定義函數(shù)時(shí),參數(shù)可帶默認(rèn)值,在不傳入數(shù)據(jù)時(shí)有默認(rèn)值的參數(shù)直接被賦值為默認(rèn)值 73 */ 74 function member($name,$sex='男'){ 75 echo "姓名:".$name.' 性別:'.$sex."<br/>"; 76 } 77 member('Jim'); 78 member('Lily','女'); 79 80 /* 81 * 局部變量 82 * 靜態(tài)變量:static 83 * ① 全局變量也是外部變量,是在函數(shù)的外部定義的 84 需要在函數(shù)中使用全局變量時(shí),可以將其聲明為global 85 * ② 在全局范圍內(nèi)訪(fǎng)問(wèn)變量的第二個(gè)辦法:使用php自定義的$GLOBALS數(shù)組 86 * ③ global與$GLOBALS的區(qū)別: 87 使用global的時(shí)候其實(shí)是在使用全局變量的一個(gè)引用 88 而使用$GLOBALS時(shí)其實(shí)是在使用全局變量本身 89 */ 90 //1 global 91 $temp1=1; 92 $temp2=2; 93 function sum(){ 94 global $temp1,$temp2;//使用global關(guān)鍵字引用 95 $temp2=$temp1+$temp2; 96 } 97 sum(); 98 echo '$temp2='.$temp2."<br/>";//$temp2=3 99 //2 $GLOBALS數(shù)組 100 $temp1=1; 101 $temp2=2; 102 function sum2(){ 103 $GLOBALS['temp2']=$GLOBALS['temp1']+$GLOBALS['temp2']; 104 } 105 sum(); 106 echo 'temp2='.$temp2."<br/>"; 107 //3 global與$GLOBALS的區(qū)別 108 $temp1=1; 109 $temp2=2; 110 function sum3(){ 111 global $temp1; 112 unset($temp1); 113 unset($GLOBALS['temp2']); 114 } 115 sum3(); 116 echo '$temp1='.$temp1.'<br/>'; //$temp1=1,函數(shù)中只是刪除了一個(gè)引用,原變量還在 117 //echo $temp2;錯(cuò)誤,因?yàn)榇藭r(shí)temp2已經(jīng)被釋放掉了 118 119 /* 120 * php支持在函數(shù)內(nèi)部定義一個(gè)函數(shù),或者根據(jù)程序的需要在函數(shù)內(nèi)部處理后得到符合需求的函數(shù) 121 */ 122 function outside_define($define){ 123 if($define=='add'){ 124 function inside_define($num){ 125 $num +=$num; 126 return $num; 127 } 128 }else{ 129 function inside_define($num){ 130 $num *=$num; 131 return $num; 132 } 133 } 134 } 135 outside_define('add'); 136 echo inside_define(6)."<br/>"; 137 //outside_define('ss');第二次執(zhí)行會(huì)報(bào)錯(cuò),因?yàn)楹瘮?shù)inside_define()已經(jīng)定義了 138 139 /* 140 * php可提供用變量存儲(chǔ)函數(shù)名稱(chēng)的功能 141 * 當(dāng)在變量后追加小括號(hào)時(shí),php將自動(dòng)解析變量的值是否為一個(gè)函數(shù)名, 142 * 如果是,則直接執(zhí)行該函數(shù) 143 */ 144 function low($num){ 145 $num=$num-100; 146 echo $num; 147 } 148 function ride($num){ 149 $num=$num*100; 150 echo $num."<br/>"; 151 } 152 $fn="ride"; 153 $fn(8); 154 155 /* 156 * 遞歸函數(shù) 157 * 定義:在一個(gè)函數(shù)的內(nèi)部,含有直接或間接調(diào)用自己本身的語(yǔ)句 158 * 建議使用循環(huán)替代遞歸 159 因?yàn)檫f歸函數(shù)將在內(nèi)存中創(chuàng)建幾個(gè)自身的副本,而且將產(chǎn)生幾次函數(shù)調(diào)用的開(kāi)銷(xiāo) 160 */ 161 function factorial($num){ 162 if($num==0){ 163 return 1; 164 }else{ 165 return $num * factorial($num-1); 166 } 167 } 168 echo factorial(4)."<br/>"; 169 170 /* 171 * 使用和包含文件:include()與require() 172 * include("demo.php");require('demo.php') 173 * 主要區(qū)別: 174 * ① 當(dāng)找不到被包含的文件時(shí),require將輸出錯(cuò)誤,而include輸出警告 175 ② include和require支持相對(duì)路徑和絕對(duì)路徑, 176 如果沒(méi)有指定明確路徑,則在當(dāng)前目錄搜索, 177 然后查找php.ini文件include_path設(shè)置中列出的目錄 178 ③ php不支持函數(shù)重載 179 * 一個(gè)文件要包含兩個(gè)不同的文件,而這兩個(gè)文件卻又包含了同一個(gè)文件, 180 為了解決這個(gè)問(wèn)題,php提供了include_once和require_once。 181 他們?cè)诘谝淮尉幾g的時(shí)候會(huì)包含指定的文件并記住這個(gè)文件,當(dāng)腳本第二次解析到這里的時(shí)候, 182 他們將會(huì)通知php該文件已被包含過(guò)。這樣,就防止了函數(shù)或結(jié)構(gòu)重復(fù)定義的問(wèn)題 183 */ 184 185 /* 186 * php模塊化 187 * 例如: 188 * header.php 189 <html> 190 <head> 191 <title><?php echo $title;?></title> 192 <style> 193 h1{color:red;} 194 </style> 195 </head> 196 <body> 197 * footer.php 198 <div align="center" width="200px">This is my footer</div> 199 </body> 200 </html> 201 * body.php 202 <?php 203 $tile='include && require is my good friend'; 204 require('header.php'); 205 ?> 206 <h1><?php echo $title;?></h1> 207 <?php 208 require('footer.php'); 209 ?> 210 */ 211 ?> 212 </body> 213 </html>?
轉(zhuǎn)載于:https://www.cnblogs.com/ningvsban/p/3619678.html
總結(jié)
以上是生活随笔為你收集整理的【php】基础学习3的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: js添加元素的三种方法
- 下一篇: ThinkPHP3.1快速入门(3)查询