-
PHP類和對象之定義類的方法
使用關(guān)鍵字static修飾的,稱之為靜態(tài)方法,靜態(tài)方法不需要實例化對象,可以通過類名直接調(diào)用,操作符為雙冒號::。
查看全部 -
PHP類和對象之類的屬性
默認都為public,外部可以訪問。一般通過->對象操作符來訪問對象的屬性或者方法,對于靜態(tài)屬性則使用::雙冒號進行訪問。當(dāng)在類成員方法內(nèi)部調(diào)用的時候,可以使用$this偽變量調(diào)用當(dāng)前對象的屬性。
受保護的屬性與私有屬性不允許外部調(diào)用,在類的成員方法內(nèi)部是可以調(diào)用的。
查看全部 -
PHP類和對象之創(chuàng)建一個對象
//方法內(nèi)部可以使用$this偽變量調(diào)用對象的屬性或者方法
查看全部 -
類是一類東西的結(jié)構(gòu)描述,而對象則是一類東西的一個具體實例,例如汽車這個名詞可以理解為汽車的總類,但這輛汽車則是一個具體的汽車對象。
類與對象看起來比較相似,但實際上有本質(zhì)的區(qū)別,類是抽象的概念,對象是具體的實例。類可以使程序具有可重用性。
查看全部 -
當(dāng)我們了解了如何使用mysql_query進行數(shù)據(jù)查詢以后,那么類似的,插入數(shù)據(jù)其實也是通過執(zhí)行一個sql語句來實現(xiàn),例如:
$sql?=?"insert?into?user(name,?age,?class)?values('李四',?18,?'高三一班')"; mysql_query($sql);?//執(zhí)行插入語句
通常數(shù)據(jù)都是存儲在變量或者數(shù)組中,因此sql語句需要先進行字符串拼接得到。
$name?=?'李四'; $age?=?18; $class?=?'高三一班'; $sql?=?"insert?into?user(name,?age,?class)?values('$name',?'$age',?'$class')"; mysql_query($sql);?//執(zhí)行插入語句
在mysql中,執(zhí)行插入語句以后,可以得到自增的主鍵id,通過PHP的mysql_insert_id函數(shù)可以獲取該id。
$uid?=?mysql_insert_id();
這個id的作用非常大,通??梢杂脕砼袛嗍欠癫迦氤晒Γ蛘咦鳛殛P(guān)聯(lián)ID進行其他的數(shù)據(jù)操作。
查看全部 -
在數(shù)據(jù)庫建立連接以后就可以進行查詢,采用mysql_query加sql語句的形式向數(shù)據(jù)庫發(fā)送查詢指令。
$res?=?mysql_query('select?*?from?user?limit?1');
對于查詢類的語句會返回一個資源句柄(resource),可以通過該資源獲取查詢結(jié)果集中的數(shù)據(jù)。
$row?=?mysql_fetch_array($res); var_dump($row);
默認的,PHP使用最近的數(shù)據(jù)庫連接執(zhí)行查詢,但如果存在多個連接的情況,則可以通過參數(shù)指令從那個連接中進行查詢。
$link1?=?mysql_connect('127.0.0.1',?'code1',?''); $link2?=?mysql_connect('127.0.0.1',?'code1',?'',?true);?//開啟一個新的連接 $res?=?mysql_query('select?*?from?user?limit?1',?$link1);?//從第一個連接中查詢數(shù)據(jù)
查看全部 -
$host = '127.0.0.1';
$user = 'code1';$pass = '';
$link = mysql_connect($host, $user, $pass);
mysql_select_db('code1');
mysql_query("set names 'utf8'");
查看全部 -
mysql擴展進行數(shù)據(jù)庫連接的方法:
$link?=?mysql_connect('mysql_host',?'mysql_user',?'mysql_password');
mysqli擴展:
$link?=?mysqli_connect('mysql_host',?'mysql_user',?'mysql_password');
PDO擴展
$dsn?=?'mysql:dbname=testdb;host=127.0.0.1'; $user?=?'dbuser'; $password?=?'dbpass'; $dbh?=?new?PDO($dsn,?$user,?$password);
查看全部 -
PHP異常處理之捕獲異常信息
在了解了異常處理的基本原理之后,我們可以通過try catch來捕獲異常,我們將執(zhí)行的代碼放在try代碼塊中,一旦其中的代碼拋出異常,就能在catch中捕獲。
這里我們只是通過案例來了解try catch的機制以及異常捕獲的方法,在實際應(yīng)用中,不會輕易的拋出異常,只有在極端情況或者非常重要的情況下,才會拋出異常,拋出異常,可以保障程序的正確性與安全,避免導(dǎo)致不可預(yù)知的bug。
查看全部 -
PHP異常處理之異常處理類
PHP具有很多異常處理類,其中Exception是所有異常處理的基類。
Exception具有幾個基本屬性與方法,其中包括了:
message 異常消息內(nèi)容
code 異常代碼
file 拋出異常的文件名
line 拋出異常在該文件的行數(shù)其中常用的方法有:
getTrace 獲取異常追蹤信息
getTraceAsString 獲取異常追蹤信息的字符串
getMessage 獲取出錯信息查看全部 -
PHP異常處理之拋出一個異常
從PHP5開始,PHP支持異常處理,異常處理是面向?qū)ο笠粋€重要特性,PHP代碼中的異常通過throw拋出,異常拋出之后,后面的代碼將不會再被執(zhí)行。
既然拋出異常會中斷程序執(zhí)行,那么為什么還需要使用異常處理?
異常拋出被用于在遇到未知錯誤,或者不符合預(yù)先設(shè)定的條件時,通知客戶程序,以便進行其他相關(guān)處理,不至于使程序直接報錯中斷。
當(dāng)代碼中使用了try catch的時候,拋出的異常會在catch中捕獲,否則會直接中斷。
?
1、基本語法
? ? ? ? try{
? ? ? ? ? ? //可能出現(xiàn)錯誤或異常的代碼
? ? ? ? ? ? //catch表示捕獲,Exception是php已定義好的異常類
? ? ? ? } catch(Exception $e){
? ? ? ? ? ? //對異常處理,方法:
? ? ? ? ? ? ? ? //1、自己處理
? ? ? ? ? ? ? ? //2、不處理,將其再次拋出
? ? ? ? }
2、處理處理程序應(yīng)當(dāng)包括:
Try - 使用異常的函數(shù)應(yīng)該位于 "try" ?代碼塊內(nèi)。如果沒有觸發(fā)異常,則代碼將照常繼續(xù)執(zhí)行。但是如果異常被觸發(fā),會拋出一個異常。
Throw - 這里規(guī)定如何觸發(fā)異常。注意:每一個 "throw" 必須對應(yīng)至少一個 "catch",當(dāng)然可以對應(yīng)多個"catch"
Catch - "catch" 代碼塊會捕獲異常,并創(chuàng)建一個包含異常信息的對象。查看全部 -
PHP文件系統(tǒng)之刪除文件
刪除文件夾使用rmdir函數(shù),文件夾必須為空,如果不為空或者沒有權(quán)限則會提示失敗。
如果文件夾中存在文件,可以先循環(huán)刪除目錄中的所有文件,然后再刪除該目錄,循環(huán)刪除可以使用glob函數(shù)遍歷所有文件。
查看全部 -
PHP類和對象之訪問控制
被定義為公有的類成員可以在任何地方被訪問。被定義為受保護的類成員則可以被其自身以及其子類和父類訪問。被定義為私有的類成員則只能被其定義所在的類訪問。
如果構(gòu)造函數(shù)定義成了私有方法,則不允許直接實例化對象了,這時候一般通過靜態(tài)方法進行實例化,在設(shè)計模式中會經(jīng)常使用這樣的方法來控制對象的創(chuàng)建,比如單例模式只允許有一個全局唯一的對象。
查看全部 -
PHP類和對象之Static靜態(tài)關(guān)鍵字
靜態(tài)屬性與方法可以在不實例化類的情況下調(diào)用,直接使用
類名::方法名
的方式進行調(diào)用。靜態(tài)屬性不允許對象使用->操作符調(diào)用。靜態(tài)方法中,$this偽變量不允許使用。可以使用self,parent,static在內(nèi)部調(diào)用靜態(tài)方法與屬性。
調(diào)用靜態(tài)屬性需要加$符號
查看全部 -
PHP類和對象之構(gòu)造函數(shù)和析構(gòu)函數(shù)
在子類中如果定義了__construct則不會調(diào)用父類的__construct,如果需要同時調(diào)用父類的構(gòu)造函數(shù),需要使用parent::__construct()顯式的調(diào)用。
查看全部
舉報