php基礎學習
1.php簡介
php:personal home page 個人主頁(面試可能會問)
Hypertext Preprocessor 超文字前處理器
html:Hyper Text Markup Language 超文字標記語言
2.php概述與名詞解釋
(1)基本語法與名詞解釋
1.php標記:<?php 和 ?>
。
分隔符號:php 需要在每個語句後用分號;結束指令,需要注意的是必須採用英文輸出。
輸出方法:echo命令
(2)變數
語法:$
變數名
筆記:不需要var宣告,直接使用即可
(3)常量
語法:define
(‘常量名’, ‘簡單值’);
為了區分變數和常量,我們約定常量在定義時均使用大寫
php中實際上並不是所有的常量的值都不能改變,MC(魔術常量例如:this)就能夠發生改變。
(4)表示式
語法:在php中表達式無法精確的被給出一個語法來設定,但可以簡單設立一個通俗的標準。
那就是語句如果不加分號的部分,就是表示式。
3.php常見資料型別
var_dump(變數|表示式):函式用來查看錶達式的值和歸屬型別。
gettype(變數|表示式) :函式用來檢視變數或表示式的型別。
(1)布林型別:Boolean
a.可以使用(bool)或(boolean)強制轉換修飾符,
來對非布林值型別的變數或表示式進行強制型別轉換。
b.當轉換為布林值型別時,以下值被認為是FALSE
布林值 FALSE 本身
整型值 0(零)
浮點型值 0.0(零)
空字串,以及字串 “0”
不包括任何元素的陣列
特殊型別 NULL(包括尚未賦值的變數)
c.所有其它值都被認為是 TRUE(包括任何資源 和 NAN)
(2)整數型別:Integer
要使用八進位制表達,數字前必須加上 0(零)。
要使用十六進位制表達,數字前必須加上 0x。ren
要使用二進位制表達,數字前必須加上 0b。
(3)浮點型別:Float
$a = 1.234;
$b = 1.2e3;
$c = 7E-10;
(4)字元型別:String
注意:php對雙引號定義的字串中的變數可以進行內容解析,而單引號則不行。
PHP獨有!!!
(5)陣列型別:Array
array( key => value , … )
// 鍵(key)可是是一個整數 integer 或字串 string
// 值(value)可以是任意型別的值 。
1.php中陣列的長度讀取通過count()
2.php中陣列內部新增原本並不存在的key值,不會補齊之間的差值,
(6)物件型別:Object
語法:$obj = new Func;
注意:
a.php中類由class關鍵字宣告,類名後沒有小括號。
b.php中類內部的方法由->箭頭來呼叫,而不是.點運算子。
例子:
class Peo{
function eat(){
echo '我會吃飯';
}
}
$frank = new Peo;
print_r($frank->eat());
(7)空值型別:NULL
4.php運算子
(1)字串的拼接符號不再是+加號運算子,而是.點運算子。
(2)字串內的+=運算子號也不再表示拼接,而是使用.=來進行拼接。
原本的+=僅用來單純的數學運算累加。
5.php流程控制語句
(1)快速遍歷不再是for-in結構,而是提供了一個foreach
語句
(2)檔案引入語句include
和require
檔案的單次引入語句include_onc
e和require_once
6.php函式
在函式外部定義的全域性變數並不能在函式內部直接使用,而是需要通過關鍵詞global在函式內部再次宣告才可以。
7.php類與物件
(1)php中的類
描述:php中類的定義都以關鍵字 class
開頭,後跟類名,再後面跟著一對花括號。
括號內包含有類的屬性與方法的定義。
語法:class 類名 { 類內部的結構 }
一個類可以包含有屬於自己的常量,變數【屬性】以及函式【即方法】。
(2)php中的物件
描述:要建立一個類的例項,必須使用 new
關鍵字。類應在被例項化之前定義。
語法:$物件名 = new 類名();
說明:
a.對於建立物件的語句中,new後面的類名後有沒有小括號都可以。
b.物件與物件之間的傳值仍然是賦值傳遞,只不過傳遞的內容是一個記憶體地址。
(3)php中類的屬性與屬性型別關鍵詞
語法: class 類名{
屬性關鍵詞 $變數名(屬性名) = 屬性值;
屬性關鍵詞 function 方法名 (引數1,引數2,…){ 方法內容程式碼; }
}
說明:
a.屬性中的變數可以初始化,但初始化的值必須是常數。
b.類的屬性和方法如果沒有寫明型別關鍵詞,則都預設是公有
public:被定義為公有的類成員可以在任何地方被訪問。
protect:被定義為受保護的類成員則可以被其自身以及其子類和父類訪問。
private:被定義為私有的類成員則只能被其定義所在的類訪問。
c.在類的成員方法中,可以用->
來訪問非靜態屬性,其中->稱為物件運算子
class Peo{
public $peoName = ‘people name’; //宣告公有屬性
private function showSelf(){ //宣告私有方法
echo 'hello world!';
}
public function canUsedFunc(){ //宣告公有方法
$this->showSelf();
} //$this是一個偽物件,表示當前正在呼叫這個方法的物件
}
$frank = new Peo(); //例項化一個Peo類的物件
echo $frank->peoName; //通過->訪問物件的公有屬性
$frank->peoName = ‘Frank’; //修改物件的公有屬性
echo $frank->peoName;
$frank->canUsedFunc(); //呼叫物件的公有方法,間接執行私有方法
(4)php中的類常量與靜態變數
語法:類常量由關鍵詞const宣告,而靜態變數則使用關鍵詞static宣告
class 類名{
const 類常量(沒有
開頭) = 簡單值;
}
說明:
a.由const宣告的類常量不允許發生任何改變,一經宣告值即固定。
b.由static宣告的靜態變數的語句,則僅在類被宣告的時候執行一次,但可以修改。
c.無論是const宣告的類常量還是static宣告的靜態變數,兩者的呼叫方式均為::呼叫
d.兩者在呼叫的時候均可以不例項化物件直接通過類名呼叫。
class Peo{
const peoName = ‘people name’; //宣告類常量
}
echo Peo::peoName; //不例項化也能直接通過類名訪問
$frank = new Peo();
echo $frank::peoName; //例項化後可以通過物件訪問
class Peo{
static $peoAge = 18; //宣告靜態變數
}
echo Peo::$peoAge; //直接通過類名訪問
Peo::$peoAge++; //修改靜態變數的值
echo Peo::$peoAge; //確認修改
$frank = new Peo(); //例項化物件,但靜態變數宣告語句不執行
echo $frank::$peoAge; //輸出靜態變數是剛才修改的值。
(5)php中類的建構函式
描述:建構函式是類在例項化物件的時候自動執行,用來幫助類去構造物件的函式。
php為所有的類都提供了一個和類名相同的隱藏建構函式。
可以通過顯示編寫或通過__construct函式來主動進行編輯。
語法:
class 類名{
//function __construct(){ 主動修改的程式碼 }
function 類名(){ 主動修改的程式碼 }
(6)php中類的繼承
class Father{
public $pubPro = '父類公開的屬性';
protected $protecPro = '父類受保護的屬性';
private $priPro = '父類私有的屬性';
public function fatherPublicPut(){
echo $this->pubPro."<br/>";
echo $this->protecPro."<br/>";
echo $this->priPro."<br/>";}
protected function fatherProtectPut(){
echo $this->pubPro."<br/>";
echo $this->protecPro."<br/>";
echo $this->priPro."<br/>";}
private function fatherPrivatePut(){
echo $this->pubPro."<br/>";
echo $this->protecPro."<br/>";
echo $this->priPro."<br/>";
}
}
class Son extends Father{
public function SonSelfPut(){
echo $this->pubPro."<br/>";
echo $this->protecPro."<br/>";
echo $this->priPro."<br/>";
}
結果