PHP 腳本在服務器上執行。
通過 PHP,您可以不受限于只輸出 HTML。您還能夠輸出圖像、PDF 文件、甚至 Flash 影片。您也可以輸出任何文本,比如 XHTML 和 XML。
PHP 腳本可放置于文檔中的任何位置。
PHP 腳本以
<?php// 此處是 PHP 代碼?>
PHP 語句以分號結尾(;)。PHP 代碼塊的關閉標簽也會自動表明分號(因此在 PHP 代碼塊的最后一行不必使用分號)。
PHP 代碼中的注釋不會被作為程序來讀取和執行。它唯一的作用是供代碼編輯者閱讀。
PHP支持三種注釋
單行注釋 // 單行注釋 # 多行注釋 /**/<!DOCTYPE html><html><body><?php// 這是單行注釋# 這也是單行注釋/*這是多行注釋塊它橫跨了多行*/?></body></html>
在 PHP 中,所有用戶定義的函數、類和關鍵詞(例如 if、else、echo 等等)都對大小寫不敏感。
不過在 PHP 中,所有變量都對大小寫敏感。
PHP 沒有創建變量的命令。
變量會在首次為其賦值時被創建(意思就是不給其賦值的時,即沒被創建):
<?php$txt='Hello world!';$x=5;$y=10.5;?>
在 PHP 中,可以在腳本的任意位置對變量進行聲明。
變量的作用域指的是變量能夠被引用/使用的那部分腳本。
PHP 有三種不同的變量作用域:
local(局部) global(全局) static(靜態)函數之外聲明的變量擁有 Global 作用域,只能在函數以外進行訪問。
函數內部聲明的變量擁有 LOCAL 作用域,只能在函數內部進行訪問。
下面的例子測試了帶有局部和全局作用域的變量:
<?php$x=5; // 全局作用域function myTest() { $y=10; // 局部作用域 echo '<p>測試函數內部的變量:</p>'; echo '變量 x 是:$x'; echo '<br>'; echo '變量 y 是:$x';} myTest();echo '<p>測試函數之外的變量:</p>';echo '變量 x 是:$x';echo '<br>';echo '變量 y 是:$x';?>
global 關鍵詞用于訪問函數內的全局變量。
要做到這一點,請在(函數內部)變量前面使用 global 關鍵詞:
<?php$x=5;$y=10;function myTest() { global $x,$y; $y=$x+$y;}myTest();echo $y; // 輸出 15?>
通常,當函數完成/執行后,會刪除所有變量。不過,有時我需要不刪除某個局部變量。實現這一點需要更進一步的工作。
要完成這一點,請在您首次聲明變量時使用 static 關鍵詞:
<?phpfunction myTest() { static $x=0; echo $x; $x++;}myTest();myTest();myTest();?>
然后,每當函數被調用時,這個變量所存儲的信息都是函數最后一次被調用時所包含的信息。
echo 和 print 之間的差異:
echo - 能夠輸出一個以上的字符串 print - 只能輸出一個字符串,并始終返回 1提示:echo 比 print 稍快,因為它不返回任何值。
echo 是一個語言結構,有無括號均可使用:echo 或 echo()。
print 也是語言結構,有無括號均可使用:print 或 print()。
字符串、整數、浮點數、邏輯、數組、對象、NULL。
字符串是字符序列,比如 “Hello world!”。
字符串可以是引號內的任何文本。您可以使用單引號或雙引號:
整數是沒有小數的數字。
浮點數是有小數點或指數形式的數字。
在下面的例子中,我們將測試不同的數字。PHP var_dump() 會返回變量的數據類型和值
邏輯是 true 或 false。
數組在一個變量中存儲多個值。
對象是存儲數據和有關如何處理數據的信息的數據類型。
在 PHP 中,必須明確地聲明對象。
首先我們必須聲明對象的類。對此,我們使用 class 關鍵詞。類是包含屬性和方法的結構。
然后我們在對象類中定義數據類型,然后在該類的實例中使用此數據類型:
<?phpclass Car{ var $color; function Car($color='green') { $this->color = $color; } function what_color() { return $this->color; }}?>
strlen() 函數返回字符串的長度,以字符計。
下例返回字符串 “Hello world!” 的長度:
<?phpecho strlen('Hello world!');?>
strpos() 函數用于檢索字符串內指定的字符或文本。
如果找到匹配,則會返回首個匹配的字符位置。如果未找到匹配,則將返回 FALSE。
下例檢索字符串 “Hello world!” 中的文本 “world”:
<?phpecho strpos('Hello world!','world');?>
以上代碼的輸出是:6。
提示:上例中字符串 “world” 的位置是 6。是 6(而不是 7)的理由是,字符串中首字符的位置是 0 而不是 1。
常量是單個值的標識符(名稱)。在腳本中無法改變該值。
有效的常量名以字符或下劃線開頭(常量名稱前面沒有 $ 符號)。
如需設置常量,請使用 define() 函數 - 它使用三個參數:
首個參數定義常量的名稱 第二個參數定義常量的值 可選的第三個參數規定常量名是否對大小寫敏感。默認是 false。下例創建了一個對大小寫敏感的常量,值為 “Welcome to W3School.com.cn!”:
<?phpdefine('GREETING', 'Welcome to W3School.com.cn!');echo GREETING;?>
下例創建了一個對大小寫不敏感的常量,值為 “Welcome to W3School.com.cn!”:
<?phpdefine('GREETING', 'Welcome to W3School.com.cn!', true);echo greeting;?>
PHP 賦值運算符用于向變量寫值。
PHP 中基礎的賦值運算符是 “=”。這意味著右側賦值表達式會為左側運算數設置值。
PHP 比較運算符用于比較兩個值(數字或字符串):
PHP 數組運算符用于比較數組:
在 PHP 中,我們可以使用以下條件語句:
if 語句 - 如果指定條件為真,則執行代碼
if…else 語句 - 如果條件為 true,則執行代碼;如果條件為 false,則執行另一端代碼
if…elseif….else 語句 - 選擇若干段代碼塊之一來執行
switch 語句 - 語句多個代碼塊之一來執行
在 PHP 中,我們有以下循環語句:
while - 只要指定條件為真,則循環代碼塊
do…while - 先執行一次代碼塊,然后只要指定條件為真則重復循環
for - 循環代碼塊指定次數
foreach - 遍歷數組中的每個元素并循環代碼塊
用戶定義的函數聲明以關鍵字”function” 開頭:
function functionName() { 被執行的代碼;}
可以通過參數向函數傳遞信息。參數類似變量。
<?phpfunction familyName($fname) { echo '$fname Zhang.<br>';}familyName('Li');familyName('Hong');familyName('Tao');familyName('Xiao Mei');familyName('Jian');?>
下面的例子展示了如何使用默認參數。如果我們調用沒有參數的 setHeight() 函數,它的參數會取默認值:
<?phpfunction setHeight($minheight=50) { echo 'The height is : $minheight <br>';}setHeight(350);setHeight(); // 將使用默認值 50setHeight(135);setHeight(80);?>
如需使函數返回值,請使用 return 語句
數組能夠在單獨的變量名中存儲一個或多個值。
<?php$cars=array('Volvo','BMW','SAAB');echo 'I like ' . $cars[0] . ', ' . $cars[1] . ' and ' . $cars[2] . '.';?>
在 PHP 中, array() 函數用于創建數組:
array();
有兩種創建索引數組的方法:
索引是自動分配的(索引從 0 開始):
$cars=array('Volvo','BMW','SAAB');
或者也可以手動分配索引:
$cars[0]='Volvo';$cars[1]='BMW';$cars[2]='SAAB';
關聯數組是使用您分配給數組的指定鍵的數組。
有兩種創建關聯數組的方法:
$age=array('Peter'=>'35','Ben'=>'37','Joe'=>'43');
或者:
$age['Peter']='35';$age['Ben']='37';$age['Joe']='43';
如需遍歷并輸出關聯數組的所有值,您可以使用 foreach 循環,就像這樣:
<?php$age=array('Bill'=>'35','Steve'=>'37','Peter'=>'43');foreach($age as $x=>$x_value) { echo 'Key=' . $x . ', Value=' . $x_value; echo '<br>';}?>
sort() - 以升序對數組排序
rsort() - 以降序對數組排序
asort() - 根據值,以升序對關聯數組進行排序
ksort() - 根據鍵,以升序對關聯數組進行排序
arsort() - 根據值,以降序對關聯數組進行排序
krsort() - 根據鍵,以降序對關聯數組進行排序
超全局變量 在 PHP 4.1.0 中引入,是在全部作用域中始終可用的內置變量。
PHP 中的許多預定義變量都是“超全局的”,這意味著它們在一個腳本的全部作用域中都可用。在函數或方法中無需執行 global $variable; 就可以訪問它們。
這些超全局變量是:
$GLOBALS 這種全局變量用于在 PHP 腳本中的任意位置訪問全局變量(從函數或方法中均可)。
PHP 在名為 $GLOBALS[index] 的數組中存儲了所有全局變量。變量的名字就是數組的鍵。
下面的例子展示了如何使用超級全局變量 $GLOBALS:
<?php $x = 75; $y = 25;function addition() { $GLOBALS['z'] = $GLOBALS['x'] + $GLOBALS['y']; }addition(); echo $z; ?>
結果是:95
$_SERVER 這種超全局變量保存關于報頭、路徑和腳本位置的信息。
下面的例子展示了如何使用 $_SERVER 中的某些元素:
<?php echo $_SERVER['PHP_SELF'];echo '<br>';echo $_SERVER['SERVER_NAME'];echo '<br>';echo $_SERVER['HTTP_HOST'];echo '<br>';echo $_SERVER['HTTP_REFERER'];echo '<br>';echo $_SERVER['HTTP_USER_AGENT'];echo '<br>';echo $_SERVER['SCRIPT_NAME'];?>
運行結果:
下表列出了您能夠在 $_SERVER 中訪問的最重要的元素:
PHP $_REQUEST 用于收集 HTML 表單提交的數據。
下面的例子展示了一個包含輸入字段及提交按鈕的表單。
當用戶通過點擊提交按鈕來提交表單數據時, 表單數據將發送到 標簽的 action 屬性中指定的腳本文件。
在這個例子中,我們指定文件本身來處理表單數據。如果您需要使用其他的 PHP 文件來處理表單數據,請修改為您選擇的文件名即可。
然后,我們可以使用超級全局變量 $_REQUEST 來收集 input 字段的值:
<html><body><form method='post' action='<?php echo $_SERVER['PHP_SELF'];?>'>Name: <input type='text' name='fname'><input type='submit'></form><?php $name = $_REQUEST['fname']; echo $name; ?></body></html>
PHP $_POST 廣泛用于收集提交 method='post' 的 HTML 表單后的表單數據。$_POST 也常用于傳遞變量。
下面的例子展示了一個包含輸入字段和提交按鈕的表單。當用戶點擊提交按鈕來提交數據后,表單數據會發送到 標簽的 action 屬性中指定的文件。在本例中,我們指定文件本身來處理表單數據。如果您希望使用另一個 PHP 頁面來處理表單數據,請用更改為您選擇的文件名。然后,我們可以使用超全局變量 $_POST 來收集輸入字段的值:
<html><body><form method='post' action='<?php echo $_SERVER['PHP_SELF'];?>'>Name: <input type='text' name='fname'><input type='submit'></form><?php $name = $_POST['fname']; echo $name; ?></body></html>
運行結果和$_REQUEST相同
PHP
<html><body><?php echo 'Study ' . $_GET['subject'] . ' at ' . $_GET['web'];?></body></html>PHP編程
鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。
新聞熱點
疑難解答