PHP學習之路(三)

2022-09-15 15:30:20 字數 3227 閱讀 9003

2017.08.08

day  3  周二  晴

什麼是常量?常量可以理解為值不變的量(如圓周率);或者是常量值被定義後,在指令碼的其他任何地方都不可以被改變。php中的常量分為自定義常量和系統常量(後續小節會詳細介紹)。

自定義常量是根據我們開發的需要,而定義的常量,它通過使用php中的函式define()定義。(注:函式,我們可以理解為乙個混凝土攪拌機,亦或是乙個篩子,通過入口提供原料,然後出口產出結果,在函式中也允許入口不提供任何資料,出口也允許不返回任何值。)

define()函式的語法格式為:

bool define(string $constant_name, mixed $value[, $case_sensitive = true])
它有3個引數(也就是原料):

第乙個引數「constant_name」為必選引數,常量名稱,即標誌符,常量的命名規則與變數的一致,但是要注意哦,它可不帶美元符號哦。第二個引數「value」為必選引數,它是常量的值。第三個引數「case_sensitive」為可選引數,指定是否大小寫敏感,設定為true表示不敏感,一般不指定第三個引數的情況下,預設第三個引數的值為false。

(注: string表示引數型別為字串型別,mixed表示引數型別可以接受為多種不同的型別,case_sensitive = true表示預設為布林型別true)

常量有什麼用呢?

常量主要功效是可以避免重複定義,篡改變數值。在我們進行團隊開發時,或者**量很大的時候,對於一些第一次定義後不改變的量,如果我們使用變數,在不知情的情況下,使用同一變數名時,變數值就會被替換掉,從而會引發伺服器執行錯誤的任務。

此外,使用常量還能提高**的可維護性。如果由於某些原因,常量的值需要變更時候,我們只需要修改乙個地方。例如在做計算中,起初我們取圓周率為3.14,於是很多計算中我們都使用3.14進行計算,當要求計算精度提高,圓周率需要取3.142的時候,我們不得不修改所有使用3.14的**,倘若**量比較多時,不僅工作量大,還可能遺漏。

鍵入:<?php

define("pi",3.14);

$r=3;

echo "面積為:".(pi*$r*$r)."

";echo "周長為:".(2*pi*$r)."

";?>

輸出面積為:28.26

周長為:18.84

系統常量是php已經定義好的常量,我們可以直接拿來使用,常見的系統常量有:

(1)__file__ :php程式檔名。它可以幫助我們獲取當前檔案在伺服器的物理位置。

(2)__line__ :php程式檔案行數。它可以告訴我們,當前**在第幾行。

(3)php_version:當前解析器的版本號。它可以告訴我們當前php解析器的版本號,我們可以提前知道我們的php**是否可被該php解析器解析。

(4)php_os:執行當前php版本的作業系統名稱。它可以告訴我們伺服器所用的作業系統名稱,我們可以根據該作業系統優化我們的**。

定義了常量,那麼就要使用常量,那麼如何獲取常量值呢?

獲取常量值的有兩種方法取值。第一種是使用常量名直接獲取值;例如計算圓周率的面積,如下(「*」是運算子,相當於乘號,後面部分的小節會介紹):

<?php 

define("pi",3.14);

$r=1;

$area = pi*$r*$r; //計算圓的面積

?>

第二種是使用constant()函式。它和直接使用常量名輸出的效果是一樣的,但函式可以動態的輸出不同的常量,在使用上要靈活、方便,其語法格式如下:

mixed constant(string constant_name)
第乙個引數constant_name為要獲取常量的名稱,也可為儲存常量名的變數。如果成功則返回常量的值,失敗則提示錯誤資訊常量沒有被定義。(注:mixed表示函式返回值型別為多種不同的型別,string表示引數型別為字串型別)

例如:

如果常量被重複定義以後,php解析器會發出「constant *** already defined」的警告,提醒我們該常量已經被定義過。那麼,在團隊開發,或**量很大的情況下,我們如何去判定乙個常量是否被定義呢?

defined()函式可以幫助我們判斷乙個常量是否已經定義,其語法格式為:

bool defined(string constants_name)
它只有引數constant_name,指的是要獲取常量的名稱,若存在則返回布林型別true,否則返回布林型別false; (注:bool表示函式返回值型別為布林型別)

鍵入<?php

define("pi1",3.14);

$p = "pi1";

$is1 = defined($p);

$is2 = defined("pi2");

var_dump($is1);

var_dump($is2);

?>

輸出:bool(true)

bool(false)

什麼是運算子?運算子是告訴php做相關運算的識別符號號。例如,你需要計算123乘以456等於多少,這時候就需要乙個符號,告訴伺服器,你需要做乘法運算。

php中的運算子有哪些?php運算子一般分為算術運算子、賦值運算子、比較運算子、三元運算子、邏輯運算子、字串連線運算子、錯誤控制運算子。

算術運算子主要是用於進行算術運算的,例如:加法運算、減法運算、乘法運算、除法運算。在php中的常用的算術運算子對應下表:

php的賦值運算子有兩種,分別是:

(1)「=」:把右邊表示式的值賦給左邊的運算數。它將右邊表示式值複製乙份,交給左邊的運算數。換而言之,首先給左邊的運算數申請了一塊記憶體,然後把複製的值放到這個記憶體中。

(2)「&」:引用賦值,意味著兩個變數都指向同乙個資料。它將使兩個變數共享一塊記憶體,如果這個記憶體儲存的資料變了,那麼兩個變數的值都會發生變化。

鍵入:<?php

$a = "我在學習php!";

$b = $a;

$c = &$a;

$a = "我天天在學習php!";

echo $b."

";echo $c."

";?>

輸出:我在學習php!

我天天在學習php!

這就是今天的分量~

2017/08/08

22「00

PHP學習之路

php學習資料 string addcslashes string str,string charlist 引數str為將要被操作的字串,引數charlist指定在字串中的哪些自符前面加上反斜線 如果產生charlist中包含 n r等字元,將以c語言風格轉換,而其他非字母數字且ascii碼低於32...

PHP 高手之路(三)

使用str replace而不是ereg replace n程式設計客棧bsp 習慣使用perl進行程式設計的程式設計師更加願意使用ereg replace完成字串替換工作,因為在php中ereg replace的用法和perl中模式匹配的用法相近。但是,下面的這段 證明,使用str replace...

PHP學習之路(1)

luke welling laura thomson,還有一本是 php與mysql程式設計 作者 w.jason gilmore。人生真的寂寞如雪啊!特別是看 時,你的愛人問你在幹什麼的時候。網上有句笑話叫找物件比物件導向開發要重要,只是要我們如何向物件解釋什麼是物件?物件是從人類的角度看世界的方...