1. 程式人生 > >php基礎學習

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)檔案引入語句includerequire
檔案的單次引入語句include_once和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 類常量(沒有 ) = ; s t a t i c ( 開頭) = 簡單值; static 靜態變數名(有 開頭) = 簡單值;
}
說明:
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/>";
}

結果
在這裡插入圖片描述