PHP语法,变量,cookie小结
PHP 運(yùn)行機(jī)制
PHP 腳本在服務(wù)器上執(zhí)行,然后將純 HTML 結(jié)果發(fā)送回瀏覽器。
基本的 PHP 語(yǔ)法
PHP 腳本可以放在文檔中的任何位置。
PHP 文件的默認(rèn)文件擴(kuò)展名是 ".php"。
PHP 文件通常包含 HTML 標(biāo)簽和一些 PHP 腳本代碼。
PHP語(yǔ)法
PHP 腳本以 <?php 開始,以 ?> 結(jié)束:
??? <?php
??? // PHP 代碼
??? ?>
PHP 中的注釋
??? <!DOCTYPE html>
??? <html>
??? <body>
??? ?
??? <?php
??? // 這是 PHP 單行注釋
??? ?
??? /*
??? 這是
??? PHP 多行
??? 注釋
??? */
??? ?>
??? ?
??? </body>
??? </html>
PHP 變量
變量是用于存儲(chǔ)信息的"容器":
??? <?php
??? $x=5;
??? $y=6;
??? $z=$x+$y;
??? echo $z;
??? ?>
與代數(shù)類似
??? x=5
??? y=6
??? z=x+y
??? 在代數(shù)中,我們使用字母(如 x),并給它賦值(如 5)。
??? 從上面的表達(dá)式 z=x+y ,我們可以計(jì)算出 z 的值為 11。
??? 在 PHP 中,這些字母被稱為變量。
亦可以給 PHP 變量賦予某個(gè)值(x=5)或者表達(dá)式(z=x+y)。
變量可以是很短的名稱(如 x 和 y)或者更具描述性的名稱(如 age、carname、totalvolume)。
PHP 變量規(guī)則:
??????? 變量以 $ 符號(hào)開始,后面跟著變量的名稱
??????? 變量名必須以字母或者下劃線字符開始
??????? 變量名只能包含字母、數(shù)字以及下劃線(A-z、0-9 和 _ )
??????? 變量名不能包含空格
??????? 變量名是區(qū)分大小寫的($y 和 $Y 是兩個(gè)不同的變量)
創(chuàng)建(聲明)PHP 變量
PHP 沒(méi)有聲明變量的命令。
變量在您第一次賦值給它的時(shí)候被創(chuàng)建:
??? <?php
??? $txt="Hello world!";
??? $x=5;
??? $y=10.5;
??? ?>
在上面的語(yǔ)句執(zhí)行中,變量 txt 將保存值 Hello world!,且變量 x 將保存值 5。
注意:當(dāng)您賦一個(gè)文本值給變量時(shí),請(qǐng)?jiān)谖谋局祪蓚?cè)加上引號(hào)。
局部和全局作用域
在所有函數(shù)外部定義的變量,擁有全局作用域。除了函數(shù)外,全局變量可以被腳本中的任何部分訪問(wèn),要在一個(gè)函數(shù)中訪問(wèn)一個(gè)全局變量,需要使用 global 關(guān)鍵字。
在 PHP 函數(shù)內(nèi)部聲明的變量是局部變量,僅能在函數(shù)內(nèi)部訪問(wèn):
??? <?php
??? $x=5; // 全局變量
??? ?
??? function myTest()
??? {
??????? $y=10; // 局部變量
??????? echo "<p>測(cè)試函數(shù)內(nèi)變量:<p>";
??????? echo "變量 x 為: $x";
??????? echo "<br>";
??????? echo "變量 y 為: $y";
??? }
??? ?
??? myTest();
??? ?
??? echo "<p>測(cè)試函數(shù)外變量:<p>";
??? echo "變量 x 為: $x";
??? echo "<br>";
??? echo "變量 y 為: $y";
??? ?>
PHP global 關(guān)鍵字
global 關(guān)鍵字用于函數(shù)內(nèi)訪問(wèn)全局變量。
在函數(shù)內(nèi)調(diào)用函數(shù)外定義的全局變量,我們需要在函數(shù)中的變量前加上 global 關(guān)鍵字:
??? <?php
??? $x=5;
??? $y=10;
??? ?
??? function myTest()
??? {
??????? global $x,$y;
??????? $y=$x+$y;
??? }
??? ?
??? myTest();
??? echo $y; // 輸出 15
??? ?>
PHP 5 常量
常量值被定義后,在腳本的其他任何地方都不能被改變。
PHP 常量
常量是一個(gè)簡(jiǎn)單值的標(biāo)識(shí)符。該值在腳本中不能改變。
一個(gè)常量由英文字母、下劃線、和數(shù)字組成,但數(shù)字不能作為首字母出現(xiàn)。 (常量名不需要加 $ 修飾符)。
注意: 常量在整個(gè)腳本中都可以使用。
設(shè)置 PHP 常量
設(shè)置常量,通常使用 define() 函數(shù),該函數(shù)語(yǔ)法如下:
bool define ( string $name , mixed $value [, bool $case_insensitive = false ] )
此函數(shù)的三個(gè)參數(shù):
??????? name:必選參數(shù),常量名稱,即標(biāo)志符。
??????? value:必選參數(shù),常量的值。
??????? case_insensitive :可選參數(shù),如果設(shè)置為 TRUE,該常量則大小寫不敏感。默認(rèn)是大小寫敏感的。
以下實(shí)例我們創(chuàng)建一個(gè) 區(qū)分大小寫的常量, 常量值為 "歡迎訪問(wèn) Runoob.com":
??? <?php
??? // 區(qū)分大小寫的常量名
??? define("GREETING", "歡迎訪問(wèn) Runoob.com");
??? echo GREETING;??? // 輸出 "歡迎訪問(wèn) Runoob.com"
??? echo '<br>';
??? echo greeting;?? // 輸出 "greeting",但是有警告信息,表示該常量未定義
??? ?>
以下實(shí)例我們創(chuàng)建一個(gè) 不區(qū)分大小寫的常量, 常量值為 "歡迎訪問(wèn) Runoob.com":
??? <?php
??? // 不區(qū)分大小寫的常量名
??? define("GREETING", "歡迎訪問(wèn) Runoob.com", true);
??? echo greeting;? // 輸出 "歡迎訪問(wèn) Runoob.com"
??? ?>
常量是全局的
常量在定義后,默認(rèn)是全局變量,可以在整個(gè)運(yùn)行的腳本的任何地方使用。
以下實(shí)例演示了在函數(shù)內(nèi)使用常量,即便常量定義在函數(shù)外也可以正常使用常量。
??? <?php
??? define("GREETING", "歡迎訪問(wèn) Runoob.com");
??? ?
??? function myTest() {
??????? echo GREETING;
??? }
??? ?
??? myTest();??? // 輸出 "歡迎訪問(wèn) Runoob.com"
??? ?>
PHP Cookie
cookie 常用于識(shí)別用戶。
Cookie 是什么?
cookie 常用于識(shí)別用戶。cookie 是一種服務(wù)器留在用戶計(jì)算機(jī)上的小文件。每當(dāng)同一臺(tái)計(jì)算機(jī)通過(guò)瀏覽器請(qǐng)求頁(yè)面時(shí),這臺(tái)計(jì)算機(jī)將會(huì)發(fā)送 cookie。通過(guò) PHP,您能夠創(chuàng)建并取回 cookie 的值。
如何創(chuàng)建 Cookie?
setcookie() 函數(shù)用于設(shè)置 cookie。
注釋:setcookie() 函數(shù)必須位于 <html> 標(biāo)簽之前。
語(yǔ)法
setcookie(name, value, expire, path, domain);
實(shí)例 1
在下面的例子中,我們將創(chuàng)建名為 "user" 的 cookie,并為它賦值 "runoob"。我們也規(guī)定了此 cookie 在一小時(shí)后過(guò)期:
??? <?php
??? setcookie("user", "runoob", time()+3600);
??? ?>
??? ?
??? <html>
??? .....
注釋:在發(fā)送 cookie 時(shí),cookie 的值會(huì)自動(dòng)進(jìn)行 URL 編碼,在取回時(shí)進(jìn)行自動(dòng)解碼。(為防止 URL 編碼,請(qǐng)使用 setrawcookie() 取而代之。)
如何取回 Cookie 的值?
PHP 的 $_COOKIE 變量用于取回 cookie 的值。
在下面的實(shí)例中,我們?nèi)』亓嗣麨?"user" 的 cookie 的值,并把它顯示在了頁(yè)面上:
??? <?php
??? // 輸出 cookie 值
??? echo $_COOKIE["user"];
??? ?
??? // 查看所有 cookie
??? print_r($_COOKIE);
??? ?>
在下面的實(shí)例中,我們使用 isset() 函數(shù)來(lái)確認(rèn)是否已設(shè)置了 cookie:
??? <html>
??? <head>
??? <meta charset="utf-8">
??? <title>菜鳥教程(runoob.com)</title>
??? </head>
??? <body>
??? ?
??? <?php
??? if (isset($_COOKIE["user"]))
??????? echo "歡迎 " . $_COOKIE["user"] . "!<br>";
??? else
??????? echo "普通訪客!<br>";
??? ?>
??? ?
??? </body>
??? </html>
如何刪除 Cookie?
當(dāng)刪除 cookie 時(shí),您應(yīng)當(dāng)使過(guò)期日期變更為過(guò)去的時(shí)間點(diǎn)。
刪除的實(shí)例:
??? <?php
??? // 設(shè)置 cookie 過(guò)期時(shí)間為過(guò)去 1 小時(shí)
??? setcookie("user", "", time()-3600);
??? ?>
如果瀏覽器不支持 Cookie 該怎么辦?
如果您的應(yīng)用程序需要與不支持 cookie 的瀏覽器打交道,那么您不得不使用其他的辦法在您的應(yīng)用程序中的頁(yè)面之間傳遞信息。一種方式是通過(guò)表單傳遞數(shù)據(jù)(有關(guān)表單和用戶輸入的內(nèi)容,在本教程的前面章節(jié)中我們已經(jīng)介紹過(guò)了)。
下面的表單在用戶單點(diǎn)擊 "Submit" 按鈕時(shí),向 "welcome.php" 提交了用戶輸入:
??? <html>
??? <head>
??? <meta charset="utf-8">
??? <title>菜鳥教程(runoob.com)</title>
??? </head>
??? <body>
??? ?
??? <form action="welcome.php" method="post">
??? 名字: <input type="text" name="name">
??? 年齡: <input type="text" name="age">
??? <input type="submit">
??? </form>
??? ?
??? </body>
??? </html>
取回 "welcome.php" 文件中的值,如下所示:
??? <html>
??? <head>
??? <meta charset="utf-8">
??? <title>菜鳥教程(runoob.com)</title>
??? </head>
??? <body>
??? ?
??? 歡迎 <?php echo $_POST["name"]; ?>.<br>
??? 你 <?php echo $_POST["age"]; ?> 歲了。
??? ?
??? </body>
??? </html>
根據(jù)軟件環(huán)境等不同或許會(huì)有亂碼情況
總結(jié)
以上是生活随笔為你收集整理的PHP语法,变量,cookie小结的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: ascll 和gbk,utf-8的简介
- 下一篇: PHP的安装与设置——windos