W3C之PHP基礎篇
PHP 是一種建立動態互動性站點的強有力的伺服器端指令碼語言。
PHP
檔案可包含文字、HTML 標籤以及腳本。PHP
檔案中的指令碼可在伺服器上執行。
什麼是 PHP?
PHP: 超文字前處理器,伺服器指令碼語言,在伺服器上執行,開源,支援多種資料庫PHP檔案:
1、可包含文字、HTML
標籤以及指令碼
2、向瀏覽器返回純粹的
HTML
3、檔案字尾是
".php"、".php3" 或 ".phtml"
PHP語法:
PHP
的指令碼塊以 <?php 開始,以 ?> 結束。您可以把
PHP 的指令碼塊放置在文件中的任何位置。
<?php ?>
向瀏覽器輸出文字 "Hello World":
<html> <body> <?php echo "Hello World"; ?> </body> </html>PHP 中的每個程式碼行都必須以分號結束。分號是一種分隔符,用於把指令集區分開來。
有兩種通過
PHP 來輸出文字的基礎指令:echo 和 print。
PHP 中的註釋
<html> <body> <?php //This is a comment /* This is a comment block */ ?> </body> </html>
PHP 中的變數
1.變數用於儲存值,比如數字、文字字串或陣列。2.所有變數都是以 $ 符號開始的。
3.在 PHP 中設定變數的正確方法是:
$var_name = value;
建立一個存有字串的變數,和一個存有數值的變數:
<?php $txt = "Hello World!"; $number = 16; ?>
PHP 是一門鬆散型別的語言
變數使用前不需要宣告資料型別
變數的命名規則
- 變數名必須以字母或下劃線 "_" 開頭。
- 變數名只能包含字母數字字元以及下劃線。
- 變數名不能包含空格。如果變數名由多個單片語成,那麼應該使用下劃線進行分隔(比如 $my_string),或者以大寫字母開頭(比如 $myString)。
PHP 中的字串
字串變數用於包含字串的值。
PHP 指令碼把字串 "Hello World" 賦值給名為 $txt 的字串變數:
<?php $txt="Hello World"; echo $txt; ?>
以上程式碼的輸出:
Hello World
並置運算子
並置運算子 (.) 用於把兩個字串值連線起來。兩個變數連線在一起,請使用這個點運算子 (.) :
<?php $txt1="Hello World"; $txt2="1234"; echo $txt1 . " " . $txt2; ?>
以上程式碼的輸出:
Hello World 1234
使用 strlen() 函式
strlen() 函式用於計算字串的長度。
算出字串 "Hello world!" 的長度:
<?php echo strlen("Hello world!"); ?>
以上程式碼的輸出:
12
使用 strpos() 函式
strpos() 函式用於在字串內檢索一段字串或一個字元。如果在字串中找到匹配,該函式會返回第一個匹配的位置。如果未找到匹配,則返回 FALSE。在字串中找到子字串 "world":
<?php echo strpos("Hello world!","world"); ?>
以上程式碼的輸出是:
6
PHP 運算子
運算子用於對值進行運算.
算數運算子
運算子 | 說明 | 例子 | 結果 |
---|---|---|---|
+ | Addition |
x=2 x+2 |
4 |
- | Subtraction |
x=2 5-x |
3 |
* | Multiplication |
x=4 x*5 |
20 |
/ | Division |
15/5 5/2 |
3 2.5 |
% | Modulus (division remainder) |
5%2 10%8 10%2 |
1 2 0 |
++ | Increment |
x=5 x++ |
x=6 |
-- | Decrement |
x=5 x-- |
x=4 |
賦值運算子
運算子 | 說明 | 例子 |
---|---|---|
= | x=y | x=y |
+= | x+=y | x=x+y |
-= | x-=y | x=x-y |
*= | x*=y | x=x*y |
/= | x/=y | x=x/y |
.= | x.=y | x=x.y |
%= | x%=y | x=x%y |
比較運算子
運算子 | 說明 | 例子 |
---|---|---|
== | is equal to | 5==8 returns false |
!= | is not equal | 5!=8 returns true |
> | is greater than | 5>8 returns false |
< | is less than | 5<8 returns true |
>= | is greater than or equal to | 5>=8 returns false |
<= | is less than or equal to | 5<=8 returns true |
邏輯運算子
運算子 | 說明 | 例子 |
---|---|---|
&& | and |
x=6 y=3 (x < 10 && y > 1) returns true |
|| | or |
x=6 y=3 (x==5 || y==5) returns false |
! | not |
x=6 y=3 !(x==y) returns true |
if、elseif
以及 else 語句用於執行基於不同條件的不同動作。
如果當前日期是週五,下面的程式碼將輸出 "Have a nice weekend!",否則會輸出 "Have a nice day!":
<html> <body> <?php $d=date("D"); if ($d=="Fri"){ echo "Have a nice weekend!"; } else echo "Have a nice day!"; ?> </body> </html>
ElseIf 語句
例項
如果當前日期是週五,下面的例子會輸出 "Have a nice weekend!",如果是週日,則輸出 "Have a nice Sunday!",否則輸出 "Have a nice day!":
<html> <body> <?php $d=date("D"); if ($d=="Fri") echo "Have a nice weekend!"; elseif ($d=="Sun") echo "Have a nice Sunday!"; else echo "Have a nice day!"; ?> </body> </htmlPHP 中的 Switch 語句用於執行基於多個不同條件的不同動作。
<?php switch ($x) { case 1: echo "Number 1"; break; case 2: echo "Number 2"; break; case 3: echo "Number 3"; break; default: echo "No number between 1 and 3"; } ?> </body> </html>PHP陣列
陣列能夠在單獨的變數名中儲存一個或多個值。
有三種陣列型別:
- 數值陣列
- 帶有數字 ID 鍵的陣列
- 關聯陣列
- 陣列中的每個 ID 鍵關聯一個值
- 多維陣列
- 包含一個或多個陣列的陣列
數值陣列
數值陣列儲存的每個元素都帶有一個數字 ID 鍵。
例子 1
在這個例子中,會自動分配 ID 鍵:
$names = array("Peter","Quagmire","Joe");
例子 2
在這個例子中,我們人工分配的 ID 鍵:
$names[0] = "Peter"; $names[1] = "Quagmire"; $names[2] = "Joe";
可以在指令碼中使用這些 ID 鍵:
<?php $names[0] = "Peter"; $names[1] = "Quagmire"; $names[2] = "Joe"; echo $names[1] . " and " . $names[2] . " are ". $names[0] . "'s neighbors"; ?>
以上程式碼的輸出:
Quagmire and Joe are Peter's neighbors
關聯陣列
例子 1
在本例中,我們使用一個陣列把年齡分配給不同的人:
$ages = array("Peter"=>32, "Quagmire"=>30, "Joe"=>34);
例子 2
本例與例子 1 相同,不過展示了另一種建立陣列的方法:
$ages['Peter'] = "32"; $ages['Quagmire'] = "30"; $ages['Joe'] = "34";
可以在指令碼中使用 ID 鍵:
<?php $ages['Peter'] = "32"; $ages['Quagmire'] = "30"; $ages['Joe'] = "34"; echo "Peter is " . $ages['Peter'] . " years old."; ?>
以上指令碼的輸出:
Peter is 32 years old.
多維陣列
在多維陣列中,主陣列中的每個元素也是一個陣列。在子陣列中的每個元素也可以是陣列,以此類推。
例子 1
在本例中,我們建立了一個帶有自動分配的 ID 鍵的多維陣列:
$families = array ( "Griffin"=>array ( "Peter", "Lois", "Megan" ), "Quagmire"=>array ( "Glenn" ), "Brown"=>array ( "Cleveland", "Loretta", "Junior" ) );
如果輸出這個陣列的話,應該類似這樣:
Array ( [Griffin] => Array ( [0] => Peter [1] => Lois [2] => Megan ) [Quagmire] => Array ( [0] => Glenn ) [Brown] => Array ( [0] => Cleveland [1] => Loretta [2] => Junior ) )
例子 2
讓我們試著顯示上面的陣列中的一個單一的值:
echo "Is " . $families['Griffin'][2] . " a part of the Griffin family?";
以上程式碼的輸出:
Is Megan a part of the Griffin family?
PHP
中的迴圈語句用於執行相同的程式碼塊指定的次數。
迴圈:while, for, foreach, do...while
while語句
例子
下面的例子示範了一個迴圈,只要變數 i 小於或等於 5,程式碼就會一直迴圈執行下去。迴圈每迴圈一次,變數就會遞增 1:
<?php $i=1; while($i<=5) { echo "The number is " . $i . "<br />"; $i++; } ?>
do...while 語句
<?php $i=0; do { $i++; echo "The number is " . $i . "<br />"; } while ($i<5); ?>
for 語句
<?php for ($i=1; $i<=5; $i++) { echo "Hello World!<br />"; } ?>
foreach 語句
<?php $arr=array("one", "two", "three"); foreach ($arr as $value) { echo "Value: " . $value . "<br />"; } ?>
輸出:
Value:one
Value:two
Value:three
PHP 函式
PHP 的真正威力源自於它的函式。在 PHP 中,提供了超過 700 個內建的函式。
例子
一個簡單的函式,在其被呼叫時能輸出我的名稱的:
<?php function writeMyName() { echo "David Yang"; } writeMyName(); ?>
使用 PHP 函式
<?php function writeMyName() { echo "David Yang"; } echo "Hello world!<br />"; echo "My name is "; writeMyName(); echo ".<br />That's right, "; writeMyName(); echo " is my name."; ?>
以上程式碼的輸出:
Hello world! My name is David Yang. That's right, David Yang is my name.
PHP 函式 - 新增引數
例子 1
下面的例子講輸出不同的名字,但姓是相同的:
<?php function writeMyName($fname) { echo $fname . " Yang.<br />"; } echo "My name is "; writeMyName("David"); echo "My name is "; writeMyName("Mike"); echo "My name is "; writeMyName("John"); ?>
上面的程式碼的輸出:
My name is David Yang. My name is Mike Yang. My name is John Yang.
例子 2
下面的函式有兩個引數:
<?php function writeMyName($fname,$punctuation) { echo $fname . " Yang" . $punctuation . "<br />"; } echo "My name is "; writeMyName("David","."); echo "My name is "; writeMyName("Mike","!"); echo "My name is "; writeMyName("John","..."); ?>
上面的程式碼的輸出:
My name is David Yang. My name is Mike Yang! My name is John Yang...
PHP 函式 - 返回值
例子
<?php function add($x,$y) { $total = $x + $y; return $total; } echo "1 + 16 = " . add(1,16); ?>
以上程式碼的輸出:
1 + 16 = 17
PHP 表單和使用者輸入
$_GET 和 $_POST 用於檢索表單中的值,比如使用者輸入<html> <body> <form action="welcome.php" method="post"> Name: <input type="text" name="name" /> Age: <input type="text" name="age" /> <input type="submit" /> </form> </body> </html>
"welcome.php" 檔案類似這樣:
<html> <body> Welcome <?php echo $_POST["name"]; ?>.<br /> You are <?php echo $_POST["age"]; ?> years old. </body> </html>
指令碼的輸出:
Welcome John. You are 28 years old.
$_GET
變數用於收集來自 method="get" 的表單中的值。
$_GET
變數是一個陣列,內容是由 HTTP GET 方法傳送的變數名稱和值
$_GET 變數用於收集來自 method="get" 的表單中的值。
從帶有 GET 方法的表單傳送的資訊,對任何人都是可見的(會顯示在瀏覽器的位址列),
並且對傳送的資訊量也有限制(最多 100 個字元)。
例子
<form action="welcome.php" method="get"
>
Name: <input type="text" name="name" />
Age: <input type="text" name="age" />
<input type="submit" />
</form>
"welcome.php" 檔案現在可以通過 $_GET 變數來獲取表單資料了(請注意,表單域的名稱會自動成為 $_GET 陣列中的 ID 鍵):
Welcome <?php echo$_GET["name"]
; ?>.<br /> You are <?php echo$_GET["age"]
; ?> years old!
$_REQUEST 變數
PHP 的 $_REQUEST 變數包含了 $_GET, $_POST 以及 $_COOKIE 的內容。
PHP 的 $_REQUEST 變數可用來取得通過 GET 和 POST 方法傳送的表單資料的結果。
例子
Welcome <?php echo $_REQUEST["name"]; ?>.<br /> You are <?php echo $_REQUEST["age"]; ?> years old!$_POST 變數用於收集來自 method="post" 的表單中的值
為什麼使用 $_POST?
- 通過 HTTP POST 傳送的變數不會顯示在 URL 中。
- 變數沒有長度限制。
相關文章
- W3C之PHP提高篇PHP
- PHP基礎之物件導向篇PHP物件
- php之ZendFramewor篇(五)元件:Zend_Controller基礎PHP元件Controller
- php之ZendFramewor篇(九)元件:Zend_Controller基礎PHP元件Controller
- 基礎篇——html與php聯動HTMLPHP
- Go 基礎篇之 MapGo
- PHP 開發工程師基礎篇 - PHP 字串PHP工程師字串
- 飛機的 PHP 學習筆記之語言基礎篇PHP筆記
- PHP DIY 系列------基礎篇:3. 反射PHP反射
- PHP 核心特性 - 生成器基礎篇PHP
- PHP 開發工程師基礎篇 (PHP 陣列)PHP工程師陣列
- Kafka原理分析之基礎篇Kafka
- webpack4之基礎篇Web
- PHP基礎之與MySQL那些事PHPMySql
- php基礎知識之$GET$POSTPHP
- PHP DIY 系列------基礎篇:2. ComposerPHP
- PHP DIY 系列------基礎篇:1. PSRPHP
- 前端之路---入坑篇之基礎中的基礎html前端HTML
- js基礎之程式碼篇1.0JS
- js基礎之定義篇1.0JS
- python之字典(dict)基礎篇Python
- dubbo原始碼解析之基礎篇原始碼
- JAVA基礎學習篇之反射Java反射
- 二、Ansible基礎之模組篇
- Android面試之Java 基礎篇Android面試Java
- MySQL學習基礎之起航篇MySql
- 前端資料之美 -- 基礎篇前端
- Linux下MySQL之基礎篇LinuxMySql
- PHP基礎之錯誤與異常PHP
- PHP基礎之過濾器講解PHP過濾器
- PHP基礎之物件導向講解PHP物件
- PHP 基礎PHP
- PHP基礎PHP
- PHP學習筆記(1)–基礎知識篇PHP筆記
- iOS動畫系列之四:基礎動畫之平移篇iOS動畫
- java安全編碼指南之:基礎篇Java
- MySQL 細緻總結之基礎篇MySql
- python之tuple元組,基礎篇Python