1. 程式人生 > 其它 >php基礎知識

php基礎知識

在這裡插入程式碼片
```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