和詳解php函數相關的博客內容(php基本語法簡述)

本文目錄一覽:

什麼是PHP的函數?

PHP 用戶定義函數

除了內建的 PHP 函數,我們可以創建我們自己的函數。

函數是可以在程序中重複使用的語句塊。

頁面加載時函數不會立即執行。

函數只有在被調用時才會執行。

在 PHP 創建用戶定義函數

用戶定義的函數聲明以關單 “function” 開頭:

語法

function functionName() {

被執行的代碼;

}

注釋:函數名能夠以字母或下劃線開頭(而非數字)。

注釋:函數名對大小寫不敏感。

提示:函數名應該能夠反映函數所執行的任務。

在下面的例子中,我們創建名為 “writeMsg()” 的函數。打開的花括號({)指示函數代碼的開始,而關閉的花括號(})指示函數的結束。此函數輸出 “Hello world!”。如需調用該函數,只要使用函數名即可:

?php

function writeMsg() {

echo “Hello world!”;

}

writeMsg(); // 調用函數

?

PHP 函數參數

可以通過參數向函數傳遞信息。參數類似變量。

參數被定義在函數名之後,括號內部。您可以添加任意多參數,只要用逗號隔開即可。

下面的例子中的函數有一個參數($fname)。當調用 familyName() 函數時,我們同時要傳遞一個名字(例如 Bill),這樣會輸出不同的名字,但是姓氏相同:

?php

function familyName($fname) {

echo “$fname Zhang.br”;

}

familyName(“Li”);

familyName(“Hong”);

familyName(“Tao”);

familyName(“Xiao Mei”);

familyName(“Jian”);

?

下面的例子中的函數有兩個參數($fname 和 $year):

?php

function familyName($fname,$year) {

echo “$fname Zhang. Born in $year br”;

}

familyName(“Li”,”1975″);

familyName(“Hong”,”1978″);

familyName(“Tao”,”1983″);

?

PHP 默認參數值

下面的例子展示了如何使用默認參數。如果我們調用沒有參數的 setHeight() 函數,它的參數會取默認值:

?php

function setHeight($minheight=50) {

echo “The height is : $minheight br”;

}

setHeight(350);

setHeight(); // 將使用默認值 50

setHeight(135);

setHeight(80);

?

PHP 函數 – 返回值

如需使函數返回值,請使用 return 語句:

?php

function sum($x,$y) {

$z=$x+$y;

return $z;

}

echo “5 + 10 = ” . sum(5,10) . “br”;

echo “7 + 13 = ” . sum(7,13) . “br”;

echo “2 + 4 = ” . sum(2,4);

?

10 個經典PHP函數

1.

sys_getloadavg()

sys_getloadavt()可以獲得系

統負載情況。該函數返回一個包含三個元素的數組,每個元素分別代表系統再過去的1、5和15分鐘內的平均負載。

與其讓服務器因負

載過高而宕掉,不如在系統負載很高時主動die掉一個腳本,sys_getloadavg()就是用來幫你實現這個功能的。

不過很遺憾,該函數在windows下無效。

2.

pack()

Pack()

能將md5()返回的32位16進制字符串轉換為16位的二進制字符串,可以節省存儲空間。

3.

cal_days_in_month()

cal_days_in_month()能夠返回指定月份共有多少天。

4.

_()

WordPress開發者經常能見到這個函數,還有

_e()。這兩個函數功能相同,與gettext()函數結合使用,能實現網站的多語言化。具體可參見PHP手冊的相關部分介紹。

5.

get_browser()

在發送頁面前先看看用戶的瀏覽器都能做些什麼是

不是挺好?get_browser()能獲得用戶的瀏覽器類型,以及瀏覽器支持的功能,不過首先你需要一個php_browscap.ini文件,用來給

函數做參考文件。

要注意,該函數對瀏覽器功能的判斷是基於該類瀏覽器的一般特性的。例如,如果用戶關閉了瀏覽器對

JavaScript的支持,函數無法得知這一點。但是在判斷瀏覽器類型和OS平台方面,該函數還是很準確的。

6.

debug_print_backtrace()

這是一個調試用的函數,能幫助你發現代碼中的邏輯錯誤。要理

解這個函數,還是直接看個例子吧:

$a

=

0;

function

iterate()

{

global

$a;

if(

$a

10

)

recur();

echo

$a

.

“,

“;

}

function

recur()

{

global

$a;

$a++;

//

how

did

I

get

here?

echo

“\n\n\n”;

debug_print_backtrace();

if(

$a

10

)

iterate();

}

iterate();

#

OUTPUT:

#0

recur()

called

at

[C:\htdocs\php_stuff\index.php:8]

#1

iterate()

called

at

[C:\htdocs\php_stuff\index.php:25]

#0

recur()

called

at

[C:\htdocs\php_stuff\index.php:8]

#1

iterate()

called

at

[C:\htdocs\php_stuff\index.php:21]

#2

recur()

called

at

[C:\htdocs\php_stuff\index.php:8]

#3

iterate()

called

at

[C:\htdocs\php_stuff\index.php:25]

#0

recur()

called

at

[C:\htdocs\php_stuff\index.php:8]

#1

iterate()

called

at

[C:\htdocs\php_stuff\index.php:21]

#2

recur()

called

at

[C:\htdocs\php_stuff\index.php:8]

#3

iterate()

called

at

[C:\htdocs\php_stuff\index.php:21]

#4

recur()

called

at

[C:\htdocs\php_stuff\index.php:8]

#5

iterate()

called

at

[C:\htdocs\php_stuff\index.php:25]

7.

metaphone()

這個函數返回單詞的metaphone值,相同讀音的單詞具有相同的metaphone值,也就是說這個函數可以幫你判斷兩個單詞的讀音是否

相同。不過對中文就無效了。。。

8.

natsort()

natsort()能將一個數組以自然排序法

進行排列,直接看個例子吧:

$items

=

array(

“100

apples”,

“5

apples”,

“110

apples”,

“55

apples”

);

//

normal

sorting:

sort($items);

print_r($items);

#

Outputs:

#

Array

#

(

#

[0]

=

100

apples

#

[1]

=

110

apples

#

[2]

=

5

apples

#

[3]

=

55

apples

#

)

natsort($items);

print_r($items);

#

Outputs:

#

Array

#

(

#

[2]

=

5

apples

#

[3]

=

55

apples

#

[0]

=

100

apples

#

[1]

=

110

apples

#

)

9.

levenshtein()

Levenshtein()

告訴你兩個單詞之間的“距離”。它告訴你如果想把一個單詞變成另一個單詞,需要插入、替換和刪除多少字母。

看個例子吧:

$dictionary

=

array(

“php”,

“javascript”,

“css”

);

$word

=

“japhp”;

$best_match

=

$dictionary[0];

$match_value

=

levenshtein($dictionary[0],

$word);

foreach($dictionary

as

$w)

{

$value

=

levenshtein($word,

$w);

if(

$value

$match_value

)

{

$best_match

=

$w;

$match_value

=

$value;

}

}

echo

“Did

you

mean

the

‘$best_match’

category?”;

10.

glob()

glob()會讓你覺得用

opendir(),

readdir()和closedir()來尋找文件非常蠢。

foreach

(glob(“*.php”)

as

$file)

echo

“$file\n”;

PHP中的文件系統函數(一)

從這篇文章開始,我們將學習一系列的 PHP 文件系統相關函數。其實這些函數中,有很多都是我們經常用到的,大家並不需要刻意地去記住它們,只要知道有這麼個東西,在使用的時候記得來查文檔就可以了。

文件路徑相關的函數往往在一些框架中會比較常見,而且多會配合 __FILE__ 、 __DIR__ 之類的魔術常量使用。

basename() 函數是獲得路徑中的文件名,它有兩個參數,第一個是文件的路徑,第二個是過濾掉的內容,比如第一條測試語句我們過濾掉文件的後綴名。

dirname() 返回的是路徑中的路徑部分,也就是不包含文件名的那部分內容,和 basename() 正好是相反的功能。

pathinfo() 函數用於以數組的形式返迴路徑中的信息,從結果來看,我們可以看到文件的 dirname 部分,basename 部分,以及文件的擴展名 extension 和不包含擴展名的 filename 內容。

realpath() 返回的是規範化的絕對路徑名,它擴展所有的符號連接並且處理輸入的路徑中的 ./ 、 ../ 以及多餘的 / ,返回的內容是標準規範的絕對路徑。

接下來,我們學習一些修改文件相關屬性的函數,主要就是在 Linux 系統環境中的文件權限信息的操作。

當然,首先我們得創建一個文件。和 Linux 中的命令是非常類似的。

touch() 函數除了給出要創建的文件名之外,還有兩個可選參數可以指定文件的創建時間及訪問時間,不給參數的話默認就是當前時間。這個文件名可以是相對或絕對路徑中有權限的目錄,並在該目錄下創建一個空的文件。

通過 fileowner() 函數,我們可以獲得某個文件所屬的用戶,默認情況下我們的用戶是當前運行 PHP 腳本的用戶,也就是系統目前的登錄用戶。在這裡,我們使用 chown() 函數,將用戶改為 www 用戶。clearstatcache() 是用於清理文件系統的緩存信息,如果不清理一下的話,fileowner() 返回的依然還是之前的用戶信息。

同理,使用 filegroup() 函數獲得文件的屬組信息,chgrp() 用於修改文件的屬組。fileperms() 用於返迴文件的權限信息,它返回的是數字模式的文件訪問權限,這裡我們使用 sprintf() 格式化結果後獲得我們常用的 Linux 系統權限格式。chmod() 函數用於修改文件的權限,它的權限參數是三個 8 進制數據組成的數字,也就是代表 Linux 系統中的 1 、2 、4 和它們的組合,所以我們需要在前面再加上一個 0 用於確保操作能夠正常執行。關於系統文件權限的知識大家需要認真學習 Linux 系統中相關的內容。

注意,上述函數如果在命令行中運行失敗,大部分原因是沒有權限,可以使用 sudo 進行測試。在 fastcgi 中運行時,就更加需要注意權限問題,僅在我們服務器可以操作的目錄中進行安全的文件權限修改。

stat() 函數可以獲取到指定文件的所有屬性信息,在這裡我們可以看到文件的 uid 、 gid 、 ctime 、 mtime 等信息。

在 Linux 系統中,有軟連接和硬連接的相關知識。其實軟連接就像是 Windows 中的快捷方式,而硬連接相關於複製了一份數據。在 PHP 中,也為我們提供了創建軟硬連接以及相關的一些操作。

使用 link() 函數創建的就是一個指定文件的硬連接文件,而使用 symlink() 創建的則是一個軟連接文件。相對來說,我們使用軟連接的場景會更多一些。lstat() 就和 stat() 函數的功能一樣,查看文件的各種屬性信息,不過 lstat() 函數針對的是軟硬連接文件。

同樣地,我們也可以修改軟硬連接的用戶和用戶組信息,不過它們的信息不能通過 fileowner() 或 filegroup() 查看。因為它們是連接文件,本身還是和原始文件綁定在一起的,使用 fileowner() 這類的函數查看到的依然是原始文件的信息。我們可以在系統環境中使用 ls -l 查看連接文件的用戶和用戶組信息是否修改成功。

今天的內容比較簡單,而且修改權限的操作也並不常用。不過對於系統安全來,它們還是非常有用的,比如對於上傳來說,我們要預防上傳可執行文件的話,就可以通過修改文件的權限來讓文件無法直接運行,從而起到安全保護的作用。另外,目錄路徑相關的操作也是一些框架的基礎,幾乎所有框架的入口或者說是 Composer 的入口,都會見到 dirname() 以及 basename() 之類函數的身影。

測試代碼:

中的文件系統函數(一).php

參考文檔:

php_uname()函數詳解

php_uname — 返回運行 PHP 的系統的有關信息。

語法: php_uname ([$mode])

php_uname() 函數會返回運行 php 的操作系統的相關描述,和 phpinfo() 最頂端上輸出的是同一個字符串。 如果僅僅要獲取操作系統的名稱。可以考慮使用常量 PHP_OS ,不過要注意該常量會包含 PHP 構建 (built) 時的操作系統名。

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/245582.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-12 13:10
下一篇 2024-12-12 13:10

相關推薦

  • Python中引入上一級目錄中函數

    Python中經常需要調用其他文件夾中的模塊或函數,其中一個常見的操作是引入上一級目錄中的函數。在此,我們將從多個角度詳細解釋如何在Python中引入上一級目錄的函數。 一、加入環…

    編程 2025-04-29
  • Python中capitalize函數的使用

    在Python的字符串操作中,capitalize函數常常被用到,這個函數可以使字符串中的第一個單詞首字母大寫,其餘字母小寫。在本文中,我們將從以下幾個方面對capitalize函…

    編程 2025-04-29
  • Python中set函數的作用

    Python中set函數是一個有用的數據類型,可以被用於許多編程場景中。在這篇文章中,我們將學習Python中set函數的多個方面,從而深入了解這個函數在Python中的用途。 一…

    編程 2025-04-29
  • 三角函數用英語怎麼說

    三角函數,即三角比函數,是指在一個銳角三角形中某一角的對邊、鄰邊之比。在數學中,三角函數包括正弦、餘弦、正切等,它們在數學、物理、工程和計算機等領域都得到了廣泛的應用。 一、正弦函…

    編程 2025-04-29
  • 單片機打印函數

    單片機打印是指通過串口或並口將一些數據打印到終端設備上。在單片機應用中,打印非常重要。正確的打印數據可以讓我們知道單片機運行的狀態,方便我們進行調試;錯誤的打印數據可以幫助我們快速…

    編程 2025-04-29
  • Python3定義函數參數類型

    Python是一門動態類型語言,不需要在定義變量時顯示的指定變量類型,但是Python3中提供了函數參數類型的聲明功能,在函數定義時明確定義參數類型。在函數的形參後面加上冒號(:)…

    編程 2025-04-29
  • Python定義函數判斷奇偶數

    本文將從多個方面詳細闡述Python定義函數判斷奇偶數的方法,並提供完整的代碼示例。 一、初步了解Python函數 在介紹Python如何定義函數判斷奇偶數之前,我們先來了解一下P…

    編程 2025-04-29
  • Python實現計算階乘的函數

    本文將介紹如何使用Python定義函數fact(n),計算n的階乘。 一、什麼是階乘 階乘指從1乘到指定數之間所有整數的乘積。如:5! = 5 * 4 * 3 * 2 * 1 = …

    編程 2025-04-29
  • Python基本索引用法介紹

    Python基本索引是指通過下標來獲取列表、元組、字符串等數據類型中的元素。下面將從多個方面對Python基本索引進行詳細的闡述。 一、列表(List)的基本索引 列表是Pytho…

    編程 2025-04-29
  • 分段函數Python

    本文將從以下幾個方面詳細闡述Python中的分段函數,包括函數基本定義、調用示例、圖像繪製、函數優化和應用實例。 一、函數基本定義 分段函數又稱為條件函數,指一條直線段或曲線段,由…

    編程 2025-04-29

發表回復

登錄後才能評論