什麼是 PHP?
- PHP 是 “PHP Hypertext Preprocessor” 的首字母縮略詞
- PHP 是一種被廣泛使用的開源腳本語言
- PHP 腳本在服務器上執行
PHP 沒有成本,可供免費下載和使用
其他的概念就不閒扯淡了…
安裝配置
http://php.net/manual/zh/install.php 官網的安裝說明
語法
<!DOCTYPE html>
<html>
<body>
<h1>我的第一張 PHP 頁面</h1>
// 這是單行註釋
# 這也是單行註釋
/* 多行註釋 */
<?php
// 此處是 PHP 代碼
// 以分號結尾(;)
echo "Hello World!";
// 關鍵字大小寫不敏感,但是變量還是敏感的
ECHO "Hello World!<br>";
$txt="Hello world!";
$x=5;
$y=10.5;
$z=$x+$y;
echo $z;
?>
</body>
</html>
PHP 變量規則:
- 變量以 $ 符號開頭,其後是變量的名稱
- 變量名稱必須以字母或下劃線開頭
- 變量名稱不能以數字開頭
- 變量名稱只能包含字母數字字符和下劃線(A-z、0-9 以及 _)
- 變量名稱對大小寫敏感($y 與 $Y 是兩個不同的變量)
PHP 根據它的值,自動把變量轉換爲正確的數據類型。
在諸如 C 和 C++ 以及 Java 之類的語言中,程序員必須在使用變量之前聲明它的名稱和類型。
PHP 變量作用域
- local(局部)
- global(全局)
- static(靜態) 這個關鍵字的用途很多語言都通用
Local 和 Global 作用域
函數之外聲明的變量擁有 Global 作用域,只能在函數以外進行訪問。
函數內部聲明的變量擁有 LOCAL 作用域,只能在函數內部進行訪問。
<?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";
?>
PHP global 關鍵詞
global 關鍵詞用於訪問函數內的全局變量。
<?php
$x=5;
$y=10;
function myTest() {
global $x,$y;
$y=$x+$y;
}
myTest();
echo $y; // 輸出 15
?>
上面的例子可以這樣重寫:爲什麼呢?PHP 同時在名爲 $GLOBALS[index] 的數組中存儲了所有的全局變量。下標存有變量名。這個數組在函數內也可以訪問,並能夠用於直接更新全局變量。
<?php
$x=5;
$y=10;
function myTest() {
$GLOBALS['y']=$GLOBALS['x']+$GLOBALS['y'];
}
myTest();
echo $y; // 輸出 15
?>
PHP echo 和 print 語句
echo 和 print 之間的差異:
- echo - 能夠輸出一個以上的字符串
- print - 只能輸出一個字符串,並始終返回 1
PHP 數據類型
字符串(“String”)、整數、浮點數、邏輯(true/false)、數組(array(***))、對象(class 關鍵詞)、NULL(變量無值)。
PHP 字符串函數
- trlen() 函數返回字符串的長度
- strpos() 函數用於檢索字符串內指定的字符或文本
- …
- PHP String 參考手冊
PHP 常量
設置常量,請使用 define() 函數 - 它使用三個參數:
首個參數定義常量的名稱
第二個參數定義常量的值
可選的第三個參數規定常量名是否對大小寫敏感。默認是 false。
<?php
define("GREETING", "Welcome to http://blog.csdn.net/w627947015!");
echo GREETING;
?>
PHP 運算符
- PHP 算數運算符
<?php
$x=10;
$y=6;
echo ($x + $y); // 輸出 16
echo ($x - $y); // 輸出 4
echo ($x * $y); // 輸出 60
echo ($x / $y); // 輸出 1.6666666666667
echo ($x % $y); // 輸出 4
?>
- PHP 賦值運算符
<?php
$x=10;
echo $x; // 輸出 10
$y=20;
$y += 100;
echo $y; // 輸出 120
$z=50;
$z -= 25;
echo $z; // 輸出 25
$i=5;
$i *= 6;
echo $i; // 輸出 30
$j=10;
$j /= 5;
echo $j; // 輸出 2
$k=15;
$k %= 4;
echo $k; // 輸出 3
?>
- PHP 字符串運算符
.串接
.=串接賦值
<?php
$a = "Hello";
$b = $a . " world!";
echo $b; // 輸出 Hello world!
$x="Hello";
$x .= " world!";
echo $x; // 輸出 Hello world!
?>
- PHP 遞增/遞減運算符
運算符 | 名稱 | 描述 |
---|---|---|
++$x | 前遞增 | $x 加一遞增,然後返回 $x |
$x++ | 後遞增 | 返回 $x,然後 $x 加一遞增 |
- -$x | 前遞減 | $x 減一遞減,然後返回 $x |
$x- - | 後遞減 | 返回 $x,然後 $x 減一遞減 |
<?php
$x=10;
echo ++$x; // 輸出 11
$y=10;
echo $y++; // 輸出 10
$z=5;
echo --$z; // 輸出 4
$i=5;
echo $i--; // 輸出 5
?>
- PHP 比較運算符
<?php
$x=100;
$y="100";
var_dump($x == $y);
echo "<br>";
var_dump($x === $y);
echo "<br>";
var_dump($x != $y);
echo "<br>";
var_dump($x !== $y);
echo "<br>";
$a=50;
$b=90;
var_dump($a > $b);
echo "<br>";
var_dump($a < $b);
?>
- PHP 邏輯運算符
運算符 | 名稱 | 例子 | 結果 |
---|---|---|---|
and | 與 | $x and $y | 如果 $x 和 $y 都爲 true,則返回 true。 |
or | 或 | $x or $y | 如果 $x 和 $y 至少有一個爲 true,則返回 true。 |
xor | 異或 | $x xor $y | 如果 $x 和 $y 有且僅有一個爲 true,則返回 true。 |
&& | 與 | $x && $y | 如果 $x 和 $y 都爲 true,則返回 true。 |
|| | 或 | $x || $y | 如果 $x 和 $y 至少有一個爲 true,則返回 true。 |
! | 非 | !$x | 如果 $x 不爲 true,則返回 true。 |
- PHP 數組運算符
運算符 | 名稱 | 例子 | 結果 |
---|---|---|---|
+ | 聯合 | $x + $y | $x 和 $y 的聯合(但不覆蓋重複的鍵) |
== | 相等 | $x == $y | 如果 $x 和 $y 擁有相同的鍵/值對,則返回 true。 |
=== | 全等 | $x === $y | 如果 $x 和 $y 擁有相同的鍵/值對,且順序相同類型相同,則返回 true。 |
!= | 不相等 | $x != $y | 如果 $x 不等於 $y,則返回 true。 |
<> | 不相等 | $x <> $y | 如果 $x 不等於 $y,則返回 true。 |
!== | 不全等 | $x !== $y | 如果 $x 與 $y 完全不同,則返回 true。 |
<?php
$x = array("a" => "red", "b" => "green");
$y = array("c" => "blue", "d" => "yellow");
$z = $x + $y; // $x 與 $y 的聯合
var_dump($z);
var_dump($x == $y);
var_dump($x === $y);
var_dump($x != $y);
var_dump($x <> $y);
var_dump($x !== $y);
?>
PHP if…else…elseif 語句 / Switch 語句
if (條件) {
當條件爲 true 時執行的代碼;
}
switch (expression)
{
case label1:
...;
break;
default:
...
}
PHP while 循環 / for 循環
while (條件爲真) {
要執行的代碼;
}
do {
要執行的代碼;
} while (條件爲真);
for (init counter; test counter; increment counter) {
code to be executed;
}
foreach ($array as $value) {
code to be executed;
}
PHP 函數
function functionName() {
被執行的代碼;
}
- 函數參數
<?php
function familyName($fname) {
echo "$fname Zhang.<br>";
}
familyName("YIYE");
?>
- PHP 默認參數值
<?php
function setHeight($minheight=50) {
echo "The height is : $minheight <br>";
}
setHeight(350);
setHeight(); // 將使用默認值 50
?>
- PHP 函數 - 返回值
<?php
function sum($x,$y) {
$z=$x+$y;
return $z;
}
echo "5 + 10 = " . sum(5,10) . "<br>";
echo "2 + 4 = " . sum(2,4);
?>
PHP 數組
<?php
$cars=array("Volvo","BMW","SAAB");
echo "I like " . $cars[0] . ", " . $cars[1] . " and " . $cars[2] . ".";
?>
在 PHP 中,有三種數組類型:
索引數組 - 帶有數字索引的數組
- 索引是自動分配的(索引從 0 開始)
- 獲得數組的長度 - count() 函數
- 遍歷索引數組
<?php $cars=array("Volvo","BMW","SAAB"); $arrlength=count($cars); for($x=0;$x<$arrlength;$x++) { echo $cars[$x]; echo "<br>"; } ?>
關聯數組 - 帶有指定鍵的數組
有兩種創建關聯數組的方法:
$age=array(“Peter”=>”35”,”Ben”=>”37”,”Joe”=>”43”);
或者:
$age[‘Peter’]=”35”;
$age[‘Ben’]=”37”;
$age[‘Joe’]=”43”;使用:
<?php $age=array("Bill"=>"35","Steve"=>"37","Peter"=>"43"); echo "Peter is " . $age['Peter'] . " years old."; ?>
遍歷關聯數組
<?php $age=array("Bill"=>"35","Steve"=>"37","Peter"=>"43"); foreach($age as $x=>$x_value) { echo "Key=" . $x . ", Value=" . $x_value; echo "<br>"; } ?>
多維數組 - 包含一個或多個數組的數組
稍微複雜了點,相對也用的較少
PHP 數組參考手冊
PHP 數組排序
PHP - 數組的排序函數
在本節中,我們將學習如下 PHP 數組排序函數:
sort() - 以升序對數組排序
<?php
$cars=array("Volvo","BMW","SAAB");
sort($cars);
?>
rsort() - 以降序對數組排序
<?php
$cars=array("Volvo","BMW","SAAB");
rsort($cars);
?>
asort() - 根據值,以升序對關聯數組進行排序
<?php
$age=array("Bill"=>"35","Steve"=>"37","Peter"=>"43");
asort($age);
?>
ksort() - 根據鍵,以升序對關聯數組進行排序
<?php
$age=array("Bill"=>"35","Steve"=>"37","Peter"=>"43");
ksort($age);
?>
arsort() - 根據值,以降序對關聯數組進行排序
<?php
$age=array("Bill"=>"35","Steve"=>"37","Peter"=>"43");
arsort($age);
?>
krsort() - 根據鍵,以降序對關聯數組進行排序
<?php
$age=array("Bill"=>"35","Steve"=>"37","Peter"=>"43");
krsort($age);
?>
PHP 全局變量 - 超全局變量
超全局變量 在 PHP 4.1.0 中引入,是在全部作用域中始終可用的內置變量。
PHP 全局變量 - 超全局變量
PHP 中的許多預定義變量都是“超全局的”,這意味着它們在一個腳本的全部作用域中都可用。在函數或方法中無需執行 global $variable; 就可以訪問它們。
這些超全局變量是:
\$GLOBALS
\$_SERVER
\$_REQUEST
\$_POST
\$_GET
\$_FILES
\$_ENV
\$_COOKIE
\$_SESSION