搜尋
首頁後端開發php教程php函數之常規參數函數與偽類型參數函數

在php函數中,函數的參數才是決定如何成功應用一個函數或是控制一個函數執行行為的標準。 參輸的設定和應用會有多種方式,學會宣告具有不同參數的函數,以及可以成功呼叫各種形式參輸的函數,是學習函數的關鍵。前面介紹如何宣告及應用各種形式的php函數。本節將根據函數參數的特點,介紹其中的兩個參數類型:常規參數函數偽類型參數函數。

php常規參數函數

常規參數函數,就是實參和形參應該個數相等、型別一致,就像C 語言或JAVA 等強型別語言中的參數使用方法一樣。 這類函數的呼叫比較容易,因為彈性不大,像強類語言一樣要求比較嚴格(參數個數是固定的,每個參數的型別也是固定的)。

常規參數的函數格式說明類似如下的形式:

example(name, age, height)                // 常规参数的函数格式

在php中,如果宣告這樣的函數就發揮不了PHP作為弱型別語言的優勢。例如,在上面的常規參數的函數語法格式範例中,宣告一個名為 example 的函數,函數執行後傳回字串類型的值。此函數有三個參數,呼叫時傳遞的參數個數和順序必須一致,且第一個參數必須是字串類型,第二個參數必須是整數,第三個參數必須是雙精確度類型。例如,在自訂函數中求兩個整數的平方和函數就是一個常規參數的函數,要求必須有兩個整數的參數。系統函數也有很多是這種類型,一些使用常規參數的系統函數如下:

string chr(int ascii)          // 必须使用一个整数作为参数
float ceil(float value)       // 必须使用一个浮点数作为参数
array array_combine(array keys, array values)            // 必须使用两个数组作为参数
int strnatcmp (string str1, string str2)          // 必须使用两个字符串作为参数
string implode(string glue, array pieces)    // 第一个参数必须是字符串,第二个参数必须是数组
string readdir(resource dir_handle)            // 必须使用一个资源类型作为参数

#php偽類型參數的函數

##PHP是弱類型的語言,不僅在宣告變數時不需要指定類型,在宣告函數時參數也不需要指定類型,所以在PHP中函數的每個參數都可以為其傳遞任意類型的值。因為弱型別是 PHP 語言最大的特點,在宣告一個函數時,可以讓同一個參數接受任意型別的值。而在 C 或 JAVA 等強型別程式語言中,如果要宣告對陣列進行排序的方法,就必須為每一種類型的陣列寫一個排序的方法,這就是所謂的函數重載。而PHP 這類弱型參數則不存在重載的概念。在PHP中,如果對各種類型的陣列進行排序,只要聲明一個函數就夠了,所以偽類型參數的函數是PHP中最常見的函數應用形式。

偽類型參數的函數格式說明類似如下:

mixed funName (mixed $args)    // 在参数列表中出现类型使用 mixed 描述的参数
number funName (number $args)    // 在参数列表中出现类型使用 number 描述的参数

PHP的偽類型,包括

mixed、number 和 callback 三種。在宣告函數時,如果參數能夠接受多種不同但並不必須是所有類型的值,在函數的說明文件中就可以使用 mixed 標記這個參數類型。如果說明一個參數可以是 整數或浮點型,就可以使用 number 標示參數。除了參數可以傳遞偽類型的參數,函數的傳回值也可以根據參數類型的不同傳回不同類型的值,像是 empty()、pow()等都是這樣的函數。

例如

call_user_func()函數就可接收使用者自訂的函數作為一個參數,它是php的內建函數。 callback函數不但可以是一個函數,也可以是一個物件的方法,靜態類別的方法也可以。一個php函數用函數名稱字串來傳遞,可以傳遞任何內建的或使用者自訂的函數。

下面來一個簡單的實例:

<?php
$data = array("name"=>"callback" , "value"=>"test");
$rs1 = http_build_query($data);        //直接调用php函数
$rs2  = call_user_func("http_build_query",$data);    //使用回调函数
echo $rs1;     //name=callback&value=test
echo "<br />";
echo $rs2;     //name=callback&value=test
?>

說明:這裡要注意的是,參數1必須是可使用的函數可以透過function_exists()傳回true的函數,這裡提醒isset,empty,is_null 等認為的常用函數其實是個運算子.並不能算函數。

【相關教學推薦】

1. 《

php.cn獨孤九賤(4)-php影片教學

2.  

php程式設計從入門到精通全套影片教學

3. 

php實戰影片教學#

以上是php函數之常規參數函數與偽類型參數函數的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
PHP如何識別用戶的會話?PHP如何識別用戶的會話?May 01, 2025 am 12:23 AM

phpIdentifiesauser'ssessionSessionSessionCookiesAndSessionId.1)whiwsession_start()被稱為,phpgeneratesainiquesesesessionIdStoredInacookInAcookInAcienamedInAcienamedphpsessIdontheuser'sbrowser'sbrowser.2)thisIdallowSphptpptpptpptpptpptpptpptoretoreteretrieetrieetrieetrieetrieetrieetreetrieetrieetrieetrieetremthafromtheserver。

確保PHP會議的一些最佳實踐是什麼?確保PHP會議的一些最佳實踐是什麼?May 01, 2025 am 12:22 AM

PHP會話的安全可以通過以下措施實現:1.使用session_regenerate_id()在用戶登錄或重要操作時重新生成會話ID。 2.通過HTTPS協議加密傳輸會話ID。 3.使用session_save_path()指定安全目錄存儲會話數據,並正確設置權限。

PHP會話文件默認存儲在哪裡?PHP會話文件默認存儲在哪裡?May 01, 2025 am 12:15 AM

phpsessionFilesArestoredIntheDirectorySpecifiedBysession.save_path,通常是/tmponunix-likesystemsorc:\ windows \ windows \ temponwindows.tocustomizethis:tocustomizEthis:1)useession_save_save_save_path_path()

您如何從PHP會話中檢索數據?您如何從PHP會話中檢索數據?May 01, 2025 am 12:11 AM

ToretrievedatafromaPHPsession,startthesessionwithsession_start()andaccessvariablesinthe$_SESSIONarray.Forexample:1)Startthesession:session_start().2)Retrievedata:$username=$_SESSION['username'];echo"Welcome,".$username;.Sessionsareserver-si

您如何使用會議來實施購物車?您如何使用會議來實施購物車?May 01, 2025 am 12:10 AM

利用會話構建高效購物車系統的步驟包括:1)理解會話的定義與作用,會話是服務器端的存儲機制,用於跨請求維護用戶狀態;2)實現基本的會話管理,如添加商品到購物車;3)擴展到高級用法,支持商品數量管理和刪除;4)優化性能和安全性,通過持久化會話數據和使用安全的會話標識符。

您如何在PHP中創建和使用接口?您如何在PHP中創建和使用接口?Apr 30, 2025 pm 03:40 PM

本文解釋瞭如何創建,實施和使用PHP中的接口,重點關注其對代碼組織和可維護性的好處。

crypt()和password_hash()有什麼區別?crypt()和password_hash()有什麼區別?Apr 30, 2025 pm 03:39 PM

本文討論了PHP中的crypt()和password_hash()的差異,以進行密碼哈希,重點介紹其實施,安全性和對現代Web應用程序的適用性。

如何防止PHP中的跨站點腳本(XSS)?如何防止PHP中的跨站點腳本(XSS)?Apr 30, 2025 pm 03:38 PM

文章討論了通過輸入驗證,輸出編碼以及使用OWASP ESAPI和HTML淨化器之類的工具來防止PHP中的跨站點腳本(XSS)。

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

VSCode Windows 64位元 下載

VSCode Windows 64位元 下載

微軟推出的免費、功能強大的一款IDE編輯器

SecLists

SecLists

SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。

DVWA

DVWA

Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。