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>";
?>


內建函數 

Basic Type change 基本型態轉換

@ string to integer 字串轉整數 : intval()
  例:
  $a="20";
  $b=20+intval($a);

@ string to double 字串轉雙倍浮點數 : doubleval()

@ integer (or double) to string 數字轉字串 : strval()

@ double to int 浮點數轉整數 : intval()

Number processing

@ 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

String processing

@ 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"
  例2: $e = substr("ABCDEF",2,3) // = "CDE"

@ 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"

Date and Time

@ time : time() , timestamp 時間戳記

  例: $a=time();

@ get date : getdate() , 取得日期及時間放在變數陣列中, 需進一步加工, 使用 seconds, minutes, hours, mday, wday, month, year

  例: $d=getdate();
    $s = $d["seconds"];
    $m = $d["minutes"];
    $h = $d["hours"];
    $md = $d["mday"];
    $wd = $d["wday"];
    $mn = $d["month"];
    $y = $d["year"];

@ 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, Binary, Octal, Hexadecimal

@ decimal to binary : decbin(number) , bindec()

@ decimal to october : decoct(number), octdec()

@ decimal to hexi : dechex(number), hexdec()

@ ...


PHP 4.0 講義 PHP介紹 1 2 3 4 5 6 7 8 9 A B C D