php基礎知識
阿新 • • 發佈:2020-12-29
在這裡插入程式碼片
```php --php hypertext preprocessor
1.php是超文字前處理器
一種執行在伺服器端的指令碼語言,由php的直譯器完成解釋,才能正常顯示內容,
瀏覽器不能解釋php程式碼,中間必須通過直譯器解釋後才能
2.什麼是URL:
統一資源定位符,格式:
協議 主機名/ip 資源名稱(path) 頁面名稱 ? 資料 #hash
http/https localhost/x.x.x.x /路徑/檔案
3.php基礎語法:
程式碼規範:寫在.php檔案中,可以包含前端程式碼;
可以以php標籤的方式可以插入html的中任意位置,可以插入多段php程式碼
標記:<?php ?> :'<?php' 代表php程式碼的開始 '?>' 代表php程式碼結束(結束部分可以預設不寫)
結束時要使用; 如果有'?>'則最後一句(注意只是最後一句,前面幾句還是要加;)的php程式碼不用寫‘;’
註釋:
// 單行註釋
/* 多行註釋
header("Content-type:text/html:charset=UTF-8")-->utf編碼格式
4.變數
在記憶體中用於臨時存放資料的容器
變數定義:
$name=xx;
命名規則:
1. 必須以$開頭,
2.$之後必須是_或者字母開頭,在後面可以是:字母、數字和_,不能包含特殊字元
3.不能以數字開頭
4.區分大小寫
5.變數的型別不用事先宣告,會自動轉換(存在漏洞)
'$a='輸出:$a= ;
"$a=" 輸出:變數值= 或者"{$a}" 就是雙引號”“會輸出裡面的變數值
$b=$a -->傳遞的是$a的值,不是地址,$a變後$b不會變
$b=&$a -->傳遞的是$a的地址給$b(值可能會變,但是地址代表的值始終是裡面的值) ,
$a變後$b也會變,會變成$a最終實際的值
可變變數:
$b='asd';
$$b=1;
echo $asd; 值為1
銷燬變數:
$a=11;
unset($a); //在記憶體裡刪除
echo $a; 報錯 undefined $a
5.資料型別
字串 string(可以單引號也可以雙引號)
'$a='輸出:$a= ;
"$a=" 輸出:變數值= 或者"{$a}" 就是雙引號”“會輸出裡面的變數值,單引號只會照樣輸出
定界符:定義多行文字的段落結構,保持文字原來的鍛鍊結構
$a=<<<aaa
文字內容
aaa;
整數 int(負整數,0,正整數)
浮點數 float
邏輯 true false
陣列 在記憶體中以容器的方式儲存多組資料;有兩種:
索引陣列:通過數字確定陣列中的元素索引 $arr=[1,1,2]是array陣列 $arr[0] 值為1是int ;
定義1:$arr=[1,'asd',2];
var_dump($arr)-->array(3) { [0]=> int(1) [1]=> string(3) "asd" [2]=> int(2) }
print_r($arr);-->Array ( [0] => 1 [1] => asd [2] => 2 )
echo $arr[0];-->1
print $arr[1];-->asd
定義2:$arr1=array(1=>123,2=>'qwe');
array(2) { [1]=> int(123) [2]=> string(3) "qwe" }
修改新增:
$arr1[索引]=值; 沒有索引,就變成新增索引和值,有就變成修改覆蓋;
關聯陣列:所有的值都有對應的鍵(字串作為索引)
定義1:
$arr['id']=1;
$arr['name']='asd';
var_dump($arr)--->array(2) { ["id"]=> int(1) ["name"]=> string(3) "asd" }
定義2:
$arr1=array('id'=>123,'name'=>'qwe');
var_dump($arr1)-->array(2) { ["id"]=> int(123) ["name"]=> string(3) "qwe" }
修改新增:
$arr1[索引]=值; 沒有索引,就變成新增鍵值對,有就變成修改覆蓋;
多維陣列:
定義1:
$arr[0]=array('id'=>1,'name'=>'qwe');
$arr[1]=array('id'=>2,'name'=>'asd');
array(2) {
[0]=> array(2) { ["id"]=> int(1) ["name"]=> string(3) "qwe" }
[1]=> array(2) { ["id"]=> int(2) ["name"]=> string(3) "asd" } }
定義2:
$arr1=array(
0=>array('id'=>1,'name'=>'qwe'),
1=>array('id'=>2,'name'=>'asd')
);
array(2) {
[0]=> array(2) { ["id"]=> int(1) ["name"]=> string(3) "qwe" }
[1]=> array(2) { ["id"]=> int(2) ["name"]=> string(3) "asd" }
}
$arr1[索引][索引]檢視具體的值
修改新增:
$arr1[索引]=值; 沒有索引,就變成新增鍵值對,有就變成修改覆蓋;
物件 object
NULL $q; var_dump($q);檢視資料型別並顯示值 這裡是null,並不等於’‘字串 string(0);
型別轉換(只是將轉換後賦予其他變數,其本身型別還是沒變):
string轉換為int
$num=(int)$s:
$s='123aasd';字母在前面 轉換為0;就是一次次找數字,遇到字母停止
var_dump($s);
$num=(int)$s;
var_dump($num);
echo $num;值為123
(想要轉換的型別)要轉換的變數
6.常量:
和變數類似,也是在記憶體中臨時存放資料的容器。
與變數不同的是:常量一旦被定義了就不允許被修改。系統有內建的定義好的常量
定義方式:
define(常量名,常量的值);
常量名不帶$,區分大小寫,規範是大寫
內建常量:系統定義好的常量 print_r(get_defined_constants());
魔術常量(系統自身定義好的):
__xxx__ 不區分大小寫,__是為了防止自定義常量覆蓋
__FILE__ 檔案完整路徑包含檔名
__DIR__ 檔案所在目錄(不包含檔名)
__FUNCTION__ 返回函式名字
__CLASS__ 返回類名字
1. List item