PHP 4.0 講義 PHP介紹 1 2 3 4 5 6 7 8 9 A B C D
函數(有傳回值)與副程式(無傳回值)
指令敘述 9.1 : 自訂函數 function 函數名( 變數1, 變數2, ... ) , 無傳回值
指令說明:將某些特定的功能組成自訂函數, 以方便呼叫使用
用法:
自訂函數 function 函數名( 變數1, 變數2, ... )
{
...
}呼叫函數 函數名( 變數a或值, 變數b或值, ... ) // 變數a或值 將會傳入到 自訂函數中的變數1
例:
function printline($n)
{
...
}printline(40); // 呼叫自訂函數, 自訂函數中的 $n 會等於 40
完整的例子9-1:
<?php
function printline($n)
{
for($i=1;$i<=$n;$i++)
echo "-";
echo "<br>";
}
printline(40); // 呼叫自訂函數
echo " Welcome to my homepage !! <br>";
printline(34);; // 呼叫自訂函數
?>
練習9-1: 設計一個自訂函數, 傳入寬與高的值, 即會echo 出 * 來組成該長方形, 例如: rectangle(6, 3) 即會產生出如下的長方形
******
******
******
指令敘述 9.2 : 自訂函數 function 函數名( 變數1, 變數2, ... ) , 有傳回值
指令說明:將某些特定的功能組成自訂函數, 以方便呼叫使用
用法:
自訂函數: function 函數名( 變數1, 變數2, ... )
{
...
return 傳回值;
}呼叫函數: 變數x= 函數名( 變數a或值, 變數b或值, ... ) // 變數a或值 將會傳入到 自訂函數中的變數1, 而傳回值 將會回傳至 變數x
例:
function square($n)
{
...
return $r;
}$ans = square(10); // 呼叫自訂函數, 自訂函數中的 $n 會等於 10, 而自訂函數執行完後, 會把 傳回值 存入 $ans
完整的例子9-2:
<?php
function square($n)
{
$r = $n * $n;
return $r;
}
$ans = square(10);
echo " square 10 = $ans <br>";
$ans = square(12);
echo " square 12 = $ans <br>";
?>
練習9-2: 仿上述的例子, 設計一個自訂函數, 傳入值與次方數, 即會回傳該值的次方運算, 例如: fun(2, 4) 即會回傳16, fun(3, 2) 即會回傳9
指令敘述 9.3 : 自訂函數 的 傳值與傳址的整理:
完整的例子9-3:
<?php
function swap($a,$b)
{
$c=$a;
$a=$b;
$b=$c;
}
function swap2(&$a,&$b)
{
$c=$a;
$a=$b;
$b=$c;
}
$x=5;
$y=3;
swap($x,$y);
echo "Call by Value, x=$x , y=$y <br>";
swap2($x,$y);
echo "Call by Address, x=$x , y=$y <br>";
?>
內建函數
@ string to integer 字串轉整數 : intval()
例:
$a="20";
$b=20+intval($a);
@ string to double 字串轉雙倍浮點數 : doubleval()
@ integer (or double) to string 數字轉字串 : strval()
@ double to int 浮點數轉整數 : intval()
@ Floor 無條件捨去 : floor()
例:
$a=20.66;
$b=floor($a);
@ Ceiling 無條件進位 : ceil()
@ Round 四捨五入 : round(a[,b]) b為小數位數,不提供則視為取至整數位
@ Power 次方運算 : pow(x,y) 即等於x的次方, 另外 pow(x,0.5) 即等於x開根號
@ Random 隨機產生亂數 : rand([min,max]) 隨機產生min~max之間的亂數, 若是32bit整數, 則max最大值為32768
@ length of string 計算字串的長度(字數) : strlen()
例: $x = strlen("This is a book.");
@ replace 取代 : str_replace(original char,new char,string)
例: $b = str_replace("A","C","A1=A2+A3");
@ Reverse the string 反轉字串 : strrev()
例: $c = strrev("ABCDEFG");@ get substring 取出特定位置的子字串 : substr(string,begin,length)
例1: $d = substr("ABCDEF",0,2) // = "AB"
@ Delete space 刪除多餘的空白字元 : trim(string)
例: $f = trim(" This is a book. ") // = "This is a book."
@ String to array 將字串轉入陣列 : preg_split(char,string)
例: $g = preg_split("/,/","1,2,3,4,5,6,7");
@ find substring 尋找子字串的位置 : strpos(string, substring) return value : position of substring (0: no find)
例: $h = strpos("This is a dog","is")
@ lower case 轉成小寫字元 : strtolower(string)
例: $j = strtolower("AAAA") // = "aaaa"
@ upper case 轉成大寫字元 : strtoupper(string)
例: $k = strtoupper("bbbbb") // = "BBBBB"
@ time : time() , timestamp 時間戳記
例: $a=time();@ get date : getdate() , 取得日期及時間放在變數陣列中, 需進一步加工, 使用 seconds, minutes, hours, mday, wday, month, year
例: $d=getdate();@ date($format) , 取得日期及時間
例: echo date("Y-m-d H:i:s"); // 輸出結果類似 2017-09-15 15:22:40
echo date("y/m/d"); // 輸出結果類似 17/09/15
echo date("m.d.Y"); // 輸出結果類似 09.15.2017
echo date('Y 年 m 月 d 日'); // 輸出結果類似:2017 年 09 月 08 日
echo date('Y 年 n 月 j 日'); // 輸出結果類似:2017 年 9 月 8 日
@ decimal to binary : decbin(number) , bindec()
@ decimal to october : decoct(number), octdec()
@ decimal to hexi : dechex(number), hexdec()
@ ...