PHP學習筆記(1)–基礎知識篇
PHP學習筆記(1)(每天進步一點點)
1. 基本的 PHP 語法
示例程式碼:
<html>
<body>
<?php
echo “Hello World”;
?>
</body>
</html>
PHP 中的每個程式碼行都必須以分號結束。分號是一種分隔符,用於把指令集區分開來。
有兩種通過 PHP 來輸出文字的基礎指令:echo 和 print。在上面的例子中,我們使用了 echo 語句來輸出文字 “Hello World”。
2. PHP 中的變數
變數用於儲存值,比如數字、文字字串或陣列。
一旦設定了某個變數,我們就可以在指令碼中重複地使用它。
PHP 中的所有變數都是以 $ 符號開始的。
在 PHP 中設定變數的正確方法是:
例:$var_name = value;
3. 並置運算子(Concatenation Operator)
在 PHP 中,只有一個字串運算子。
並置運算子 (.) 用於把兩個字串值連線起來。
要把兩個變數連線在一起,請使用這個點運算子 (.) :
<?php
$txt1=”Hello World”;
$txt2=”1234″;
echo $txt1 . ” ” . $txt2;
?>
以上程式碼的輸出:
Hello World 1234您可以看到,我們在上面的例子中使用了兩次並置運算子。這是由於我們需要插入第三個字串。
為了分隔這兩個變數,我們在 $txt1 與 $txt2 之間插入了一個空格。
4.使用 strpos() 函式
strpos() 函式用於在字串內檢索一段字串或一個字元。
如果在字串中找到匹配,該函式會返回第一個匹配的位置。如果未找到匹配,則返回 FALSE。
讓我們試一下,是不是能在字串中找到子字串 “world”:
<?php
echo strpos(“Hello world!”,”world”);
?>
以上程式碼的輸出是:
6
正如您看到的,在我們的字串中,字串 “world” 的位置是 6。返回 6 而不是 7,是由於字串中的首個位置的 0,而不是 1。
5. 數值陣列
數值陣列儲存的每個元素都帶有一個數字 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
6. 多維陣列
在多維陣列中,主陣列中的每個元素也是一個陣列。在子陣列中的每個元素也可以是陣列,以此類推。
例子 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?
7. 建立 PHP 函式
1) 所有的函式都使用關鍵詞 “function()” 來開始
2) 命名函式 – 函式的名稱應該提示出它的功能。函式名稱以字母或下劃線開頭。
3) 新增 “{” – 開口的花括號之後的部分是函式的程式碼。
4) 插入函式程式碼
5) 新增一個 “}” – 函式通過關閉花括號來結束。
例子
一個簡單的函式,在其被呼叫時能輸出我的名稱的:
<html>
<body>
<?php
function writeMyName()
{
echo “David Yang”;
}
writeMyName();
?>
</body>
</html>
8. 使用 PHP 函式
現在,我們要在 PHP 指令碼中使用這個函式了:
<html>
<body>
<?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.”;
?>
</body>
</html>以上程式碼的輸出:
Hello world!
My name is David Yang.
That`s right, David Yang is my name.
9. PHP 函式 – 新增引數
我們的第一個函式是一個非常簡單的函式。它只能輸出一個靜態的字串。
通過可以新增引數,我們向函式新增更多的功能。引數類似一個變數。
您可能注意到了,函式名稱後面有一個括號,比如 writeMyName()。引數就是在括號中規定的。
例子 1
下面的例子講輸出不同的名字,但姓是相同的:
<html>
<body>
<?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”);
?>
</body>
</html>
上面的程式碼的輸出:
My name is David Yang.
My name is Mike Yang.
My name is John Yang.
例子 2
下面的函式有兩個引數:
<html>
<body>
<?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”,”…”);
?>
</body>
</html>上面的程式碼的輸出:
My name is David Yang.
My name is Mike Yang!
My name is John Yang…
10. PHP 函式 – 返回值
函式也能用於返回值。
例子
<html>
<body>
<?php
function add($x,$y)
{
$total = $x + $y;
return $total;
}
echo “1 + 16 = ” . add(1,16);
?>
</body>
</html>
以上程式碼的輸出:
1 + 16 = 17
11.PHP 表單處理
表單例項:
<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>
上面的 HTML 頁面例項包含了兩個輸入框和一個提交按鈕。當使用者填寫該表單並單擊提交按鈕時,表單的資料會被送往 “welcome.php” 這個檔案。
“welcome.php” 檔案類似這樣:
<body>
Welcome <?php echo $_POST[“name”]; ?>.<br />
You are <?php echo $_POST[“age”]; ?> years old.
</body>
</html>
上面這個指令碼的輸出樣本類似這樣:
Welcome John.
You are 28 years old.
12.表單驗證
應該在任何可能的時候對使用者輸入進行驗證。客戶端的驗證速度更快,並且可以減輕伺服器的負載。
不過,任何流量很高以至於不得不擔心伺服器資源的站點,也有必要擔心站點的安全性。如果表單訪問的是資料庫,就非常有必要採用伺服器端的驗證。
在伺服器驗證表單的一種好的方式是,把表單傳給它自己,而不是跳轉到不同的頁面。這樣使用者就可以在同一張表單頁面得到錯誤資訊。使用者也就更容易發現錯誤了。
$_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>當使用者點選提交按鈕時,傳送的 URL 會類似這樣:
http://www.w3school.com.cn/welcome.php?name=Peter&age=37″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 變數
$_POST 變數是一個陣列,內容是由 HTTP POST 方法傳送的變數名稱和值。
$_POST 變數用於收集來自 method=”post” 的表單中的值。從帶有 POST 方法的表單傳送的資訊,對任何人都是不可見的(不會顯示在瀏覽器的位址列),並且對傳送資訊的量也沒有限制。
例子
<form action="welcome.php" method="post"
>
Enter your name: <input type="text" name="name" />
Enter your age: <input type="text" name="age" />
<input type="submit" />
</form>
當使用者點選提交按鈕,URL 不會含有任何表單資料,看上去類似這樣:
http://www.w3school.com.cn/welcome.php
“welcome.php” 檔案現在可以通過 $_POST 變數來獲取表單資料了(請注意,表單域的名稱會自動成為 $_POST 陣列中的 ID 鍵):
Welcome <?php echo $_POST["name"]
; ?>.<br />
You are <?php echo $_POST["age"]
; ?> years old!
為什麼使用 $_POST?
· 通過 HTTP POST 傳送的變數不會顯示在 URL 中。
· 變數沒有長度限制。
不過,由於變數不顯示在 URL 中,所有無法把頁面加入書籤。
(本文僅供個人複習參考之用,無其他目的)
相關文章
- C++基礎知識學習筆記(1)C++筆記
- GO 學習筆記 《1. 基礎知識》Go筆記
- 基礎知識學習筆記筆記
- Python學習筆記—day1—基礎知識Python筆記
- RxJava 學習筆記 -- 基礎知識RxJava筆記
- 技術分享 | Kubernetes 學習筆記之基礎知識篇筆記
- Redis基礎知識(學習筆記15--持久化 (1))Redis筆記持久化
- Redis基礎知識(學習筆記8--Redis命令(1))Redis筆記
- C++基礎知識學習筆記(3)C++筆記
- PHP 基礎知識-1PHP
- React學習手記1--基礎知識React
- Redis基礎知識(學習筆記1--五種基礎資料結構)Redis筆記資料結構
- LiteOS學習筆記[01]-weharmonyos-基礎知識筆記
- Redis基礎知識(學習筆記11--SDS)Redis筆記
- Redis基礎知識(學習筆記3--Redlock)Redis筆記
- 資料庫學習筆記 - MySQL基礎知識資料庫筆記MySql
- MySQL學習筆記【基礎篇】MySql筆記
- 機器學習基礎知識1機器學習
- Redis基礎知識(學習筆記19--Redis Sentinel)Redis筆記
- Redis基礎知識(學習筆記5--Redis Cluster)Redis筆記
- 飛機的 PHP 學習筆記之語言基礎篇PHP筆記
- Redis基礎知識(學習筆記16--持久化 (2))Redis筆記持久化
- Redis基礎知識(學習筆記17--持久化 (3))Redis筆記持久化
- Redis基礎知識(學習筆記9--Redis命令(2))Redis筆記
- Redis基礎知識(學習筆記10--Redis命令(3))Redis筆記
- Redis基礎知識(學習筆記2--分散式鎖)Redis筆記分散式
- 前端學習記錄 1:HTML 基礎知識點歸納前端HTML
- 菜鳥學習筆記:Java基礎篇1(基礎語法、物件導向)筆記Java物件
- Redis基礎知識(學習筆記22--分散式鎖 Redisson )Redis筆記分散式
- Redis基礎知識(學習筆記14--釋出/訂閱)Redis筆記
- Redis基礎知識(學習筆記18--主從叢集)Redis筆記
- PHP基礎知識PHP
- 強化學習-學習筆記1 | 基礎概念強化學習筆記
- vueX基礎知識點筆記Vue筆記
- sql基礎知識(筆記)(一)SQL筆記
- Android基礎知識學習Android
- 《通訊原理基礎》學習筆記(1)筆記
- Java核心技術 卷1 基礎知識 部分筆記Java筆記
- Redis基礎知識(學習筆記21--Lua 指令碼語言)Redis筆記指令碼