PHP 中的變量用一個美圓符號後面跟變量名來表示。變量名是區分大小寫的。php
命令規則以標緻符爲準則。 - 變量以 $ 符號開頭,其後是變量的名稱 - 變量名稱必須以字母或下劃線開頭 - 變量名稱不能以數字開頭 - 變量名稱只能包含字母數字字符和下劃線(A-z、0-9 以及 _) - 變量名稱對大小寫敏感($y 與 $Y 是兩個不一樣的變量)html
函數以外聲明的變量擁有 Global 做用域,只能在函數之外進行訪問。python
函數內部聲明的變量擁有 LOCAL 做用域,只能在函數內部進行訪問。laravel
<?php $x=5; // 全局做用域 function myTest() { $y=10; // 局部做用域 echo "<p>測試函數內部的變量:</p>"; echo "變量 x 是:$x"; echo "<br>"; echo "變量 y 是:$y"; } myTest(); echo "<p>測試函數以外的變量:</p>"; echo "變量 x 是:$x"; echo "<br>"; echo "變量 y 是:$y"; ?>
global 關鍵詞用於訪問函數內的全局變量。git
要作到這一點,請在(函數內部)變量前面使用 global 關鍵詞:面試
<?php $x=5; $y=10; function myTest() { global $x,$y; $y=$x+$y; } myTest(); echo $y; // 輸出 15 ?>
一般,當函數完成/執行後,會刪除全部變量。不過,有時我須要不刪除某個局部變量。實現這一點須要更進一步的工做。redis
要完成這一點,請在您首次聲明變量時使用 static 關鍵詞:docker
可使用$_POST[], $_GET[], $_REQUEST[]對值進行獲取。數據庫
當提交表單時,能夠用一幅圖像代替標準的提交按鈕,用相似這樣的標記:ubuntu
<input type="image" src="image.gif" name="sub" />
當用戶點擊到圖像中的某處時,相應的表單會被傳送到服務器,並加上兩個變量 sub_x 和 sub_y。
它們包含了用戶點擊圖像的座標。有經驗的用戶可能會注意到被瀏覽器發送的實際變量名包含的是一個點而不是下劃線(即 sub.x 和 sub.y), 但 PHP 自動將點轉換成了下劃線。
Cookies 是一種在遠端瀏覽器端存儲數據並能追蹤或識別再次訪問的用戶的機制。
能夠用 setcookie() 函數設定 cookies。
Cookies 是 HTTP 信息頭中的一部分,所以 SetCookie 函數必須在向瀏覽器發送任何輸出以前調用。
對於 header() 函數也有一樣的限制。Cookie 數據會在相應的 cookie 數據數組中可用,例如 $_COOKIE,$HTTP_COOKIE_VARS 和 $_REQUEST。
<?php setcookie("MyCookie[foo]", 'Testing 1', time()+3600); setcookie("MyCookie[bar]", 'Testing 2', time()+3600); ?>
$a = 'hello'; $$a = 'world' // 如下兩種方式結果同樣 echo "$a ${$a}"; echo "$a $hello";
常量是一個簡單值的標識符(名字)。如同其名稱所暗示的,在腳本執行期間該值不能改變(除了所謂的魔術常量,它們其實不是常量)。
常量默認爲大小寫敏感。傳統上常量標識符老是大寫的。
<?php // 合法的常量名 define("FOO", "something"); define("FOO2", "something else"); define("FOO_BAR", "something more"); // 非法的常量名 define("2FOO", "something"); // 下面的定義是合法的,但應該避免這樣作:(自定義常量不要以__開頭) // 也許未來有一天PHP會定義一個__FOO__的魔術常量 // 這樣就會與你的代碼相沖突 define("__FOO__", "something"); ?>
<?php define("CONSTANT", "Hello world."); echo CONSTANT; // outputs "Hello world." echo Constant; // 輸出 "Constant" 併發出一個提示級別錯誤信息 ?>
<?php // 如下代碼在 PHP 5.3.0 後能夠正常工做 const CONSTANT = 'Hello World'; echo CONSTANT; ?>
名稱 | 說明 |
---|---|
LINE | 文件中的當前行號。 |
FILE | 文件的完整路徑和文件名。若是用在被包含文件中,則返回被包含的文件名。自 PHP 4.0.2 起,FILE 老是包含一個絕對路徑(若是是符號鏈接,則是解析後的絕對路徑),而在此以前的版本有時會包含一個相對路徑。 |
DIR | 文件所在的目錄。若是用在被包括文件中,則返回被包括的文件所在的目錄。它等價於 dirname(FILE)。除非是根目錄,不然目錄中名不包括末尾的斜槓。(PHP 5.3.0中新增) |
FUNCTION | 函數名稱(PHP 4.3.0 新加)。自 PHP 5 起本常量返回該函數被定義時的名字(區分大小寫)。在 PHP 4 中該值老是小寫字母的。 |
CLASS | 類的名稱(PHP 4.3.0 新加)。自 PHP 5 起本常量返回該類被定義時的名字(區分大小寫)。在 PHP 4 中該值老是小寫字母的。類名包括其被聲明的做用區域(例如 Foo\Bar)。注意自 PHP 5.4 起 CLASS |
TRAIT | Trait 的名字(PHP 5.4.0 新加)。自 PHP 5.4 起此常量返回 trait 被定義時的名字(區分大小寫)。Trait 名包括其被聲明的做用區域(例如 Foo\Bar)。 |
METHOD | 類的方法名(PHP 5.0.0 新加)。返回該方法被定義時的名字(區分大小寫)。 |
NAMESPACE | 當前命名空間的名稱(區分大小寫)。此常量是在編譯時定義的(PHP 5.3.0 新增)。 |
function myfun($title, $myvar="Moments"){ echo ">>>".$title." "; echo $myvar; echo " "; } $myvar = "Hello World!"; myfun("變量定義", $myvar);
PHP 有三種不一樣的變量做用域:
local(局部):函數內部聲明的變量擁有 LOCAL 做用域,只能在函數內部進行訪問。
global(全局):函數以外聲明的變量擁有 Global 做用域,只能在函數之外進行訪問。 static(靜態):進行靜態聲明後,函數完成/執行完,不會刪除全部變量。
$flag = 100; function myfun(){ global $flag; echo $flag; } myfun();
function myfun(){ static $flag = 0; $flag++; echo $flag; } for($i=0;$i<10;$i++){ myfun(); } #輸出12345678910
define("PI", "3.14"); echo PI; echo " "; echo constant("PI");