第6週講義-再談PHP函數 PHP 的真正威力源自於它的函數。在 PHP 中,提供了超過 700 個內建的函數。 函數是一種可以在任何被需要的時候執行的程式區塊。 創建 PHP 函數: 1.所有的函數都使用關鍵詞 "function()" 來開始 2.命名函數 - 函數的名稱應該提示出它的功能。函數名稱以字母或下劃線開頭。 3.添加 "{" - 開口的花括號之後的部分是函數的代碼。 4.插入函數代碼 5.添加一個 "}" - 函數通過關閉花括號來結束。 例子 一個簡單的函數,在其被調用時能輸出我的名字:
<?php echo "<html><body>"; writeMyName(); echo "</body></html>";
function writeMyName() { echo "張大強"; }
?>
PHP 函數 - 添加参數 我們的第一個函數是一個非常簡單的函數。它只能輸出一個靜態的字符串。 函數可以添加参數。参數類似一個變量。
<?php echo "<html><body>"; echo "My name is "; echo writeMyName("David Yang"); echo "My name is "; echo writeMyName("Mike Yang"); echo "My name is "; echo writeMyName("John Yang"); echo "</body></html>";
function writeMyName($fname) { echo $fname . "<br />"; }
?>
PHP 函數 - 返回值 : 函數也能用於返回值。
例子 <?php echo "<html><body>"; echo "1 + 16 = " . add(1,16); echo "</body></html>";
function add($x,$y) { $total = $x + $y; return $total; }
?>
例子 <?php echo "<html><body>"; echo "1 + 2 + ... + 100 = " . add(1,100); echo "</body></html>";
function add($x,$y) { $total=0; for ($i=$x; $i<=$y; $i++) { $total=$total+$i; } return $total; }
?>
PHP的自訂函數有幾個特性: 1.函數內的變數是獨立的,不會受外在變數的影響。 2.函數本身可以傳入多個或不傳入參數 3.函數只可以回傳一個變數班室可以是陣列變數)或一個值。
例子
<?php
$a=1; echo "函數呼叫前的\$a =" . $a . "<br>"; dosomething(); echo "函數呼叫後的\$a =" . $a . "<br>";
function dosomething() { $a=2; echo "內部變數:\$a = " . $a . "<br>"; }
?>
php函數的全域變數例子
<?php $a=1; echo "函數呼叫前的\$a =" . $a . "<br>"; dosomething(); echo "函數呼叫後的\$a =" . $a . "<br>"; dosomething();
function dosomething() { global $a; $a=$a+2; echo "內部變數:\$a = " . $a . "<br>"; }
?>
練習 1. 請將本學期的作業彙整到一個網頁 <!-- frame.html --> <FRAMESET rows='24%,*' bordercolor='#ff00ff'> <FRAME name='top' SRC='./image.html' scrolling=no> <FRAMESET cols='18%,*' bordercolor='#ff00ff'> <FRAME name='left' SRC='./left.html'> <FRAME name='middle' SRC='./middle.html'> </FRAMESET> </FRAMESET>
<!-- left.html --> <a href='./ex1.php' target='middle'>第一個程式</a><br> <a href='./ex2.php' target='middle'>第二個程式</a><br> <a href='./ex3.php' target='middle'>第三個程式</a><br> <!-- image.html --> <img src='./image.jpg' height='40' width='1000'> 2. 寫一函數 function bigger($a,$b), 回傳較大者, 程式以下列呼叫測試 bigger("ABCD","abcd"); bigger("ABCD","ABcd"); bigger(100,200); bigger(1.24,1.25); 3. 寫一函數 function smaller($a,$b), 回傳較小者, 程式以前述呼叫測試 4.. 寫一函數 function tolower($a), 回傳$a的小寫 5. 寫一函數 function toupper($a), 回傳$a的大寫 提示: <?php $ch="A"; echo "ord($ch)=" .ord($ch) . "<br>"; $ch="a"; echo "ord($ch)=" .ord($ch) . "<br>"; $ch=65; echo "chr($ch)=" .chr($ch) . "<br>"; $ch=97; echo "chr($ch)=" .chr($ch) . "<br>"; ?> 6.. 寫一函數 function change_case($a), 回傳$a的大寫變小寫小寫變大寫 提示 <?php $str="AbcD"; echo "str=$str<br>"; $len=strlen($str); for ($i=0; $i<$len; $i++) { $ch=substr($str,$i,1); echo "i=$i ch=$ch <br>"; $str1="$str1$ch"; } echo "str1=$str1<br>"; ?>