1. 程式人生 > 其它 >php學習記錄1

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 可選。規定所返回的陣列元素的數目。

可能的值:

  • 大於 0 - 返回包含最多 limit 個元素的陣列
  • 小於 0 - 返回包含除了最後的 -limit 個元素以外的所有元素的陣列
  • 0 - 會被當做 1, 返回包含一個元素的陣列
<?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 實體。

預定義的字元是:

  • & (和號)成為 &amp;
  • " (雙引號)成為 &quot;
  • ' (單引號)成為 '
  • < (小於)成為 &lt;
  • > (大於)成為 &gt;

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;
 ?>