php學習記錄1
PHP語法
PHP 指令碼在伺服器上執行,然後將純 HTML 結果傳送回瀏覽器。
基本的 PHP 語法
PHP 指令碼可以放在文件中的任何位置。
PHP 指令碼以尖括號、問號、PHP<?php開始,以?>問號、尖括號結束:
<?php
//這裡是我們要寫的PHP程式碼
?>
PHP 檔案的預設副檔名是 ".php"。
PHP 檔案通常包含 HTML 標籤和一些 PHP 指令碼程式碼。
echo 顯示命令
echo 是在PHP裡面最常用的一個輸出、顯示功能的命令。
我們可以讓他顯示任何可見的字元。
注意事項:
php的程式碼部份全部要用半形的英文、很多人容易寫成全形的英文和符號造成PHP程式碼報錯。
PHP 中的每個程式碼行都必須以分號結束。分號是一種分隔符,用於把指令集區分開來。
PHP程式碼的最後一行可以加也可不加分號。
單行註釋(只註釋一行)
// 雙斜槓表示單行註釋 有時也用 # 表示 但用的比較少,多用 //
多行註釋(註釋多行)
以 /* 開始 */結束 代表多行註釋
<!DOCTYPE html> <html> <body> <?php echo "Hello World!"; //註釋語句 /* 多行註釋語句 */ ?> </body> </html>
PHP變數
變數是用於儲存資訊的"容器":
PHP 變數
我們在PHP中的變數也是如此。不過有幾個特點:
1. 必須要以$開始。如變數x必須要寫成$x
2. 變數的首字母不能以數字開始
3. 變數的名字區分大小寫
4. 變數不要用特殊符號、中文,_不算特殊符號
5. 變數命名要有意義(別寫xxx,aaa,ccc這種 變數名)
6. $ 叫作美元符,英文單詞:dollar。PHP的變數必須以美元符開始。說明搞PHP有“錢”圖
建立(宣告)PHP 變數
PHP 沒有宣告變數的命令。
變數在您第一次賦值給它的時候被建立:
<?php $txt="Helloworld!"; $x=5; $y=10.5; ?>
PHP 是一門弱型別語言
在上面的例項中,我們注意到,不必向 PHP 宣告該變數的資料型別。
PHP 變數作用域
變數的作用域是指令碼中變數可被引用/使用的部分。
PHP 有四種不同的變數作用域:
· local
· global
· static
· parameter
區域性和全域性作用域區域性和全域性作用域(loacal global)
在所有函式外部定義的變數,擁有全域性作用域。除了函式外,全域性變數可以被指令碼中的任何部分訪問,要在一個函式中訪問一個全域性變數,需要使用 global 關鍵字。
在 PHP 函式內部宣告的變數是區域性變數,僅能在函式內部訪問:
<?php header("Content-type:text/html;charset=utf-8"); $x=5; // 全域性變數 function myTest() { $y=10; // 區域性變數 echo "<p>測試函式內變數:<p>"; echo "變數 x 為: $x"; //輸出錯誤 Notice: Undefined variable: echo "<br>"; echo "變數 y 為: $y"; } myTest(); echo "<p>測試函式外變數:<p>"; echo "變數 x 為: $x"; echo "<br>"; echo "變數 y 為: $y"; //輸出錯誤 Notice: Undefined variable:
當我們呼叫myTest()函式並輸出兩個變數的值, 函式將會輸出區域性變數 $y 的值,但是不能輸出 $x 的值,因為 $x 變數在函式外定
義,無法在函式內使用,如果要在一個函式中訪問一個全域性變數,需要使用 global 關鍵字。
然後我們在myTest()函式外輸出兩個變數的值,函式將會輸出全域性部變數 $x 的值,但是不能輸出 $y 的值,因為 $y 變數在函式中
定義,屬於區域性變數。
PHP global 關鍵字
global 關鍵字用於函式內訪問全域性變數。
例項
在函式內呼叫函式外定義的全域性變數,我們需要在函式中的變數前加上 global 關鍵字:
<?php $x=10; $y=20; function test(){ global $x,$y; //使用global關鍵字 $y=$x+$y; } test(); echo $y;//輸出30
PHP 將所有全域性變數儲存在一個名為 $GLOBALS[index] 的陣列中。index儲存變數的名稱。這個陣列可以在函式內部訪問,也
可以直接用來更新全域性變數。
<?php function test() { $foo = "local variable"; echo '$foo in global scope: ' . $GLOBALS["foo"] . "\n"; echo '$foo in current scope: ' . $foo . "\n"; } $foo = "Example content"; test(); ?>
Static 作用域
當一個函式完成時,它的所有變數通常都會被刪除。然而,有時候您希望某個區域性變數不要被刪除。
要做到這一點,請在您第一次宣告變數時使用static關鍵字:
例項
<?php function myTest() { static $x=0; echo $x; $x++; } myTest();//0 myTest();//01 myTest();//012 myTest();//0123 ?>
每次呼叫該函式時,該變數將會保留著函式前一次被呼叫時的值。
註釋:該變數仍然是函式的區域性變數。
引數作用域
引數是通過呼叫程式碼將值傳遞給函式的區域性變數。
引數是在引數列表中宣告的,作為函式宣告的一部分:
PHP echo 和 print 語句
echo 和 print 區別:
· echo - 可以輸出一個或多個字串,字串可以包含 HTML 標籤
· print - 只允許輸出一個字串,返回值總為 1
提示:echo 輸出的速度比 print 快, echo 沒有返回值,print有返回值1。
PHP echo 語句
echo 是一個語言結構,使用的時候可以不用加括號,也可以加上括號: echo 或 echo()。
顯示變數
<?php $txt1="Learn PHP"; $txt2="PHP online"; $cars=array("Volvo","BMW","Toyota"); echo $txt1; echo "<br>"; echo "Study PHP at $txt2"; echo "<br>"; echo "My car is a {$cars[0]}"; ?>
PHP print 語句
print 同樣是一個語言結構,可以使用括號,也可以不使用括號: print 或 print()。
顯示字串
<?php print "<h2>PHP is fun!</h2>"; print "Hello world!<br>"; print "I'm about to learn PHP!"; ?>
顯示變數
<?php $txt1="Learn PHP"; $txt2="PHP online"; $cars=array("Volvo","BMW","Toyota"); print $txt1; print "<br>"; print "Study PHP at $txt2"; print "<br>"; print "My car is a {$cars[0]}"; ?>
PHP 5 資料型別
PHP的資料型別包括以下幾種,
Integer(整型)
String(字串)
Float(浮點型),
Boolean(布林型)
Array(陣列)
Object(物件)
NULL(空值)
檢視資料型別
1. gettype(傳入一個變數) 能夠獲得變數的型別
2. var_dump(傳入一個變數) 輸出變型別和值 (最常用)
var_dump() 是一個函式。向括號()中間插入變數。這個函式,會打印出來資料型別,還會對應顯示變數的長度和值。
<?php $x = 5985; //十進位制
echo gettype($x);//int var_dump($x);//int(5985) echo "<br>"; $x = -345; // 負數 var_dump($x);//int(-345) echo "<br>"; $x = 0x8C; // 十六進位制數 var_dump($x);//int(140) echo "<br>"; $x = 047; // 八進位制數 var_dump($x);//int(39) ?>
整型(int)
所謂整型,就是大家數學中所學的整數。
整型分為:
1. 10進行制
2. 8進位制 (瞭解,基本不用)
3. 16進位制(瞭解,基本不用)
8進位制宣告:以0開始,後面跟0-7的整數(瞭解知識點)
16進位制宣告:以0x開始,後面跟0-f的,0x的abcdef不區分大小寫。(瞭解知識點)
整數規則:
· 整數必須有至少一個數字(0-9)
· 整數不能包含逗號或空格
· 整數不能有小數點
· 整數正負均可
· 可以用三種格式規定整數:十進位制、十六進位制(字首是 0x)或八進位制(字首是 0)
字串(String)
字串就是所有我們可見和不可見的字元,就是我們日常當中說的話,就是我想說:“李文凱好帥”或者“鳳姐,我愛你!”。字串,就是我想表達的一切讓人看到的字元。
例如可以看到的字元:
我願變成童話你,你愛的那個王子,有房有車有票子。<html><title></title></html>^@@@#@my name is xiaoshenyang
以上的文字,HTML標籤、特殊字元和英文等等,我們都認為是字串
在PHP語言中宣告字串有三種方式:
1. 用單引號宣告
2. 用雙引號宣告
3. 用字界符宣告(需要輸入非常大段的字串時使用)
1.單引號宣告用英文半腳的單引號,將字串包起來,就像下面這樣:
$zifuchuan= '我是單引號';
1. 雙引號宣告字串在字串兩邊加雙引號,向下面這樣:
$zifuchuan= "我是雙引號";
3.字界符宣告
1).在變數後面的等號寫三個小於號(<<<)。
2).然後在<<<後面寫上字元(建議英文大寫字元)。如下例中的:ABC
3).然後換行寫上任意想寫的字元
4).寫完後,頂行。在行最開始處,再寫上<<<後面的字元和分號。如下例中的:ABC;
<?php $dingjie = <<<ABC 如果 非要在這個滾犢子 前 面<br /> 加上一段 <i>距離的話</i> 我想說:<h1>思想有多遠,你就跟我滾多遠</h1> ABC; echo $dingjie; ?>
浮點型(float)
所謂浮點型別,可以理解為:我們數學裡面的小數。
布林型(bool)
布林型別就是:真和假。
在英文把真和假翻譯過來就是:
· true(真)
· false(假)
因此,我們在PHP程式碼裡面可以這樣宣告。
<?php
//宣告一個變數(拼音)為布林
$buer = true;
//導明一個變數(英文)
$bool = false;
?>
注:true和false外面不要加引號。
陣列(Array)
陣列就是在一個變數中儲存多個值。
<?php $cars=array("Volvo",'a',1,false,1.2,array("a",2),null); var_dump($cars); ?>
array(7) { [0]=> string(5) "Volvo" [1]=> string(1) "a" [2]=> int(1) [3]=> bool(false) [4]=> float(1.2) [5]=> array(2) { [0]=> string(1) "a" [1]=> int(2) } [6]=> NULL }
物件(Object)
物件是儲存資料和有關如何處理資料的資訊的資料型別。
在 PHP 中,必須明確地宣告物件。
首先我們必須宣告物件的類。對此,我們使用 class 關鍵詞。類是包含屬性和方法的結構。
然後我們在物件類中定義資料型別,然後在該類的例項中使用此資料型別:
PHP 字串變數
字串變數用於儲存並處理文字。
PHP 中的字串變數
字串變數用於包含有字元的值。
在建立字串之後,我們就可以對它進行操作了。您可以直接在函式中使用字串,或者把它儲存在變數中。
一些常用的操作字串的函式和運算子。
PHP 並置運算子
在 PHP 中,只有一個字串運算子。
並置運算子.(點)用於把兩個字串值連線起來。
PHP strlen() 函式
有時知道字串值的長度是很有用的。
strlen() 函式返回字串的長度(字元數)。
注意:在UTF-8下strlen把中文字元算成 3 個位元組,英文,空格,符號佔 1 個位元組。
PHP strpos() 函式
strpos() 函式用於在字串內查詢一個字元或一段指定的文字。
如果在字串中找到匹配,該函式會返回第一個匹配的字元位置,字串中第一個字元的位置是 0,而不是 1。如果未找到匹配,則返回 FALSE。
explode() 函式
explode() 函式使用一個字串分割另一個字串,並返回由字串組成的陣列。
註釋:"separator" 引數不能是一個空字串。
語法:explode(separator,string,limit)
引數 | 描述 |
---|---|
separator | 必需。規定在哪裡分割字串。 |
string | 必需。要分割的字串。 |
limit | 可選。規定所返回的陣列元素的數目。
可能的值:
|
<?php $str = 'one,two,three,four'; // 返回包含一個元素的陣列 print_r(explode(',',$str,0)); print "<br>"; // 陣列元素為 2 print_r(explode(',',$str,2)); print "<br>"; // 刪除最後一個數組元素 print_r(explode(',',$str,-1)); ?>
Array([0] => one,two,three,four)
Array([0] => one[1] => two,three,four)
Array([0] => one[1] => two[2] => three)
PHP htmlspecialchars() 函式
htmlspecialchars() 函式把一些預定義的字元轉換為 HTML 實體。
預定義的字元是:
- & (和號)成為 &
- " (雙引號)成為 "
- ' (單引號)成為 '
- < (小於)成為 <
- > (大於)成為 >
PHP 5 String 函式
PHP str_word_count() 函式對字串中的單詞進行計數:
PHP strrev() 函式反轉字串:
PHP str_replace() 函式用一些字串替換字串中的另一些字元。
下面的例子用 "Kitty" 替換文字 "world"
<?php echo str_replace("world", "Kitty", "Hello world!"); // 輸出 Hello Kitty! ?>
PHP常量
常量可以理解為:永久不變的值
常量值被定義後,在指令碼的其他任何地方都不能被改變
PHP 常量
常量是單個值的識別符號(名稱)。在指令碼中無法改變該值。
有效的常量名以字元或下劃線開頭(常量名稱前面沒有 $ 符號)。
常量名可以小寫,但是通常大寫
註釋:與變數不同,常量貫穿整個指令碼是自動全域性的。
設定 PHP 常量
如需設定常量,請使用 define() 函式 - 它使用三個引數:
1. 首個引數定義常量的名稱
2. 第二個引數定義常量的值
3. 可選的第三個引數規定常量名是否對大小寫敏感。預設是 false。
常量是全域性的
常量在定義後,預設是全域性變數,可以在整個執行的指令碼的任何地方使用。
<?php header("Content-type:text/html;charset=utf-8"); define("GREETING", "歡迎訪問 php.cn"); function myTest() { echo GREETING; } myTest(); // 輸出 "歡迎訪問 php.cn" ?>
系統還為我們準備了一些內建的常量。這些常量都是規定好的。
<?php header("Content-type:text/html;charset=utf-8"); define("GREETING", "歡迎訪問 php.cn"); function myTest() { echo GREETING; //內建的預定義常量 NULL TURE FALSE echo "<br>".__LINE__;//左右各兩條下劃線 返回函式的第幾行 echo "<br>".__FILE__;//返回pHP程式檔名 當前檔案在伺服器的路徑 echo "<br>".PHP_VERSION; echo "<br>".PHP_OS; echo "<br>".E_ERROR;//該常量指到最近的錯誤處 echo "<br>".E_WARNING;//該常量指到最近的警告處、 } myTest(); // 輸出 "歡迎訪問 php.cn" ?>
https://www.php.cn/code/95.html
PHP運算子
PHP算術運算子
運算子 | 名稱 | 例子 | 結果 |
+ | 加法 | $x + $y | $x 與 $y 求和 |
- | 減法 | $x - $y | $x 與 $y 的差數 |
* | 乘法 | $x * $y | $x 與 $y 的乘積 |
/ | 除法 | $x / $y | $x 與 $y 的商數 |
% | 取餘也叫取模、求模 | $x % $y | $x 除 $y 的餘數 |
<?php $x=10; $y=6; echo ($x + $y)."<br/>"; // 輸出 16 echo ($x - $y)."<br/>"; // 輸出 4 echo ($x * $y)."<br/>"; // 輸出 60 echo ($x / $y)."<br/>"; // 輸出 1.6666666666667 echo ($x % $y)."<br/>"; // 輸出 4 ?>
PHP賦值運算子
我們在數學裡面把 = (一個等號)叫作賦值運算子,即:把等號右邊的值,賦值給等號左邊的變數,左邊的變數就為右邊的值。
符號 | 舉例 | 等價式 |
+= | $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 |
PHP字串運算子
運算子 | 名稱 | 例子 | 結果 |
. | 串接 | $txt1 = "Hello" $txt2 = $txt1 . " world!" | 現在 $txt2 包含 "Hello world!" |
.= | 串接賦值 | $txt1 = "Hello" $txt1 .= " world!" | 現在 $txt1 包含 "Hello world!" |
<?php $a = "Hello"; $b = $a . " world!"; echo $b; // 輸出 Hello world! echo "<br/>"; $x="Hello"; $x .= " world!"; echo $x; // 輸出 Hello world! ?>
PHP遞增/遞減運算子
遞增與遞減說簡單點就是把自己加一或減一
符號 | 說明 |
$x++ | 先賦值後加 |
$x-- | 先賦值後減 |
++$x | 先加後賦值 |
--$x | 先減後賦值 |
PHP比較運算子:
PHP 比較運算子用於比較兩個值(數字或字串):
名稱 | 例子 | 結果 | |
== | 等於 | $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。 |
> | 大於 | $x > $y | 如果 $x 大於 $y,則返回 true。 |
< | 小於 | $x < $y | 如果 $x 小於 $y,則返回 true。 |
>= | 大於或等於 | $x >= $y | 如果 $x 大於或者等於 $y,則返回 true. |
<= | 小於或等於 | $x <= $y | 如果 $x 小於或者等於 $y,則返回 true。 |
<?php $x=100; $y="100"; var_dump($x == $y);//bool(true) echo "<br>"; var_dump($x === $y);//bool(false) echo "<br>"; var_dump($x != $y);//bool(false) echo "<br>"; var_dump($x !== $y);//bool(true) 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。 |
三目運算子
三目運算子的格式:
(expr1)?(expr2):(expr3); //表示式1?表示式2:表示式3
<?PHP $a=10; $b=20; $c=$a>$b?($a-$b):($a+$b); //說明:如果變數a大於變數b則執行問號後面的,否則就執行:冒號後面的 echo $c; ?>