首頁 >後端開發 >PHP問題 >php函數入門基礎知識有哪些?

php函數入門基礎知識有哪些?

coldplay.xixi
coldplay.xixi原創
2020-06-22 10:34:073823瀏覽

php函數入門基礎知識有哪些?

推薦教學:《php教學

#php函式入門基礎知識有哪些?

php函數入門基礎有:

#1、函數的宣告

function 函数名([参数1,参数2...])
{
函数体;
return 返回值;
}

2 、使用雙層for迴圈輸出表格

function table(){
echo "<table align=&#39;center&#39; border=&#39;1px&#39; width=&#39;600px&#39;>";
echo "<caption><h1>通过函数输出表格</h1></caption>";
for($out=0;$out<10;$out++){
$bgcolor = $out%2 == 0 ? "#FFFFFF" : "#DDDDDD";
echo "<tr bgcolor=".$bgcolor.">";
for($in=0;$in<10;$in++){
echo "<td>".$out*10+$in."</td>";
}
echo "</tr>";
}
echo "</table>";
}

3、函數tabel()改寫

function table($tableName,$rows,$cols){
echo "<table align=&#39;center&#39; border=&#39;1px&#39; width=&#39;600px&#39;>";
echo "<caption><h1>$tableName</h1></caption>";
for($out=0;$out<$rows;$out++){
$bgcolor = $out%2 == 0 ? "#FFFFFF" : "#DDDDDD";
echo "<tr bgcolor=".$bgcolor.">";
for($in=0;$in<$cols;$in++){
echo "<td>".($out*$cols+$in)."</td>";
}
echo "</tr>";
}
echo "</table>";
}
table("此时你是我的唯一",5,3);

4、PHP變數的範圍(分為局部變數與全域變數)

       局部變數也稱為內部變量,是在函數內部宣告的變數,其作用域僅限於函數內部。

       局部變數可從儲存方式上分為動態儲存類型和靜態儲存類型。 函數中的局部變量,如果專門宣告為static儲存類別,預設都是動態地分配儲存空間的。

     其中的內部動態變數在函數呼叫結束後自動釋放。如果希望在函數執行後,其內部變數仍會保存在記憶體中,應使用靜態變數。在函數執行完畢後,靜態變數並不會消失,而是在所有對該函數的呼叫之間共享,即在函數再次執行時,靜態變數將接續前次的結果繼續運算,並且僅在腳本的執行期間函數第一次被呼叫時被初始化。要宣告函數變數為靜態的,需要關鍵字static。自行理解!

function demo($one){
$two = $one;
echo "在函数内部执行:$two+$one=".($two+$one)."<br/>";
}
demo(200);
echo "在函数外部执行:$two+$one=".($two+$one);   //非法访问

全域變數也稱外部變量,是在函數的外部定義的,他的作用域變數定義處開始,到本程式文的結尾。

在函數中若要使用全域變量,就必須利用global關鍵字定義目標變量,以告訴函數主體此變數為全域變數。

$one = 200;
$two = 100;
function demo(){
//在函数内部使用global关键字加载全局变量$one和$two
global $one,$two;
echo "运算结果:$two+$one=".($two+$one)."<br/>"; //300
echo "运算结果:".($GLOBAL[&#39;two&#39;]+$GLOBAL[&#39;one&#39;])."<br/>"; 
 
}

5、PHP函數參數的種類

(1)常規參數的函數

string example(string name,int age,double height)

(2)偽類型參數的函數:

PHP的偽類型:mixed number callback 三種

mixed funName(mixed $args)

number funName(number $args)

(3)引用參數的函數:

#如果函數中的形參中有使用"&"修飾的參數,則在呼叫函數時就必須傳入一個變數給這個參數,而不能傳遞一個值。

void funName(array $&arg)

(4)預設參數的函數:

預設值必須是常數表達式,不能是變數、類別成員或函數呼叫。 PHP允許使用陣列和特殊類型NULL作為預設參數。

mixed funName(string name[,string value[,int age]]) // 在参数列表中出现使用[]描述的参数
function person($name="张三",$age=20,$sex="男"){
echo "我的名字是:{$name},我的年龄是{$age},我的性别是{$sex}<br/>";
}

(5)可變個數字參數的函數:

func_get_args();//將所有傳遞給腳本的函數的參數當作一個陣列返回

func_num_args();//傳回參數的總數

mixed func_get_arg(int $arg_num);//傳回參數清單的某一項(0.....)

(6)mixed funName(string arg[,string ...])回呼函數:函數參數為一個函數

mixed funName(callback arg)    //在參數清單中使用偽類型callback描述來了解變數函數、使用變數函數宣告並套用回呼函數,並使用call_user_func_array()函數自訂回呼函數,類別靜態函數和物件的方法回呼;

//变量函数不能用于语言结构,例如echo()
//print()、unset()、isset()、empty()
//include()、require()及类似的语句       
        function one($a,$b){
return $a+$b;
}
function two($a,$b){
return $a+$b+$b*$b;
}
function three($a,$b){
rerurn $a*$a*$a+$b*$b*$b;
}
$result = "one";
//$result = "two";
//$result = "three";
echo $result(1,2);
function filter($fun){
$fun();
}
function test(){
echo "haha!";
}
function test2(){
echo "houhou!";
}
filter("test");
filter("test2");//haha!houhou!
function fun($msg1,$msg2){
echo &#39;$msg1=&#39;.$msg1;
echo &#39;<br/>&#39;;
echo &#39;$msg2=&#39;.$msg2;
}
call_user_func_array(&#39;fun&#39;,array(&#39;Lamp&#39;,&#39;兄弟连&#39;));
//类静态调用和对象的方法调用
class Demo{
static function fun($msg1,$msg2){
echo &#39;$msg1=&#39;.$msg1;
echo &#39;<br/>&#39;;
echo &#39;$msg2=&#39;.$msg2;
}
}
class Test{
function fun($msg1,$msg2){
echo &#39;$msg1=&#39;.$msg1;
echo &#39;<br/>&#39;;
echo &#39;$msg2=&#39;.$msg2;
}
}
//类静态调用
call_user_func_array(array(&#39;Demo&#39;,&#39;fun&#39;),array(&#39;Lamp&#39;,&#39;兄弟连&#39;));
//对象的方法调用
call_user_func_array(array(new Test(),&#39;fun&#39;),array(&#39;Lamp&#39;,&#39;兄弟连&#39;));

#callback("函數名稱字串");  //回呼全域函數

#callback(array("類別名稱字串","類別中靜態方法名稱字串"));//回呼類別中的靜態成員方法

callback(array(物件參考,"物件中方法名稱字串");//回呼物件中的靜態成員方法

遞歸函數:函數呼叫自身

6、使用自定義函數庫

函數庫並不是定義函數的PHP語法,而是程式設計時的一種設計模式。函數是結構化程式設計的模組,是實現程式碼重用的最重要的核心。為了更好的組織程式碼,使自訂的函數可以在同一個專案的多個文件中使用,通常將多個自訂的函數組織到同一個文件或多個文件中。這些收集函數定義的文件就是建立的PHP函數庫。如果在PHP的腳本中想使用這些檔案中定義的函數,就需要使用include、require、include_once、require_once中的一個函數,將函數庫檔案載入到腳本程式中。

include和require語句,都是包含並執行指定檔案。不同之處在於,對include語句來說,在執行檔時每次都要進行讀取和評估;而對require來說,檔案只處理一次

(實際上,檔案內容取代了require語句),這表示如果可能執行多次的程式碼,則使用require效率比較高。另外,如果每次執行程式碼時,讀取不同的文件,或是有透過一組

文件迭代的循環,就是用include語句。

require 的使用方法如 require("MyRequireFile.php"); 。這個函數通常放在 PHP 程式的最前面,PHP 程式在執行前,就會先讀入 require 所指定引入的文件,使它變成 PHP 程式網頁的一部分。常用的函數,亦可以這個方法將它引入網頁中。

include 使用方法如 include("MyIncludeFile.php"); 。這個函數一般是放在流程控制的處理部分。 PHP 程式網頁在讀到 include 的檔案時,才將它讀進來。這種方式,可以把程式執行時的流程簡單化。

他們兩個的用途是完全一樣的,不一定要哪一個放在最前面哪一個放在中間。他們最根本的差別在於錯誤處理的方式不一樣。

require一個檔案存在錯誤的話,那麼程式就會中斷執行了,並顯示致命錯誤

include一個檔案存在錯誤的話,那麼程式不會中端,而是繼續執行,並顯示一個警告錯誤。

推薦相關文章:《php圖文教學

以上是php函數入門基礎知識有哪些?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

相關文章

看更多