php開啟錯誤提示

error_reporting(E_ALL);

ini_set('display_errors','1');


php中開啟與關(guān)閉錯誤提示的方法有幾種一種可以直接在程序中使用相關(guān)函數(shù)來開戶,另一種我們可以使用php.ini中配置參數(shù)來控制,下面小編來給各位同學介紹一下。

windows系統(tǒng)開關(guān)php錯誤提示

如果不具備修改php.ini的權(quán)限,可以將如下代碼加入php文件中:

ini_set("display_errors", "On");error_reporting(E_ALL | E_STRICT);

當然豺妓,如果能夠修改php.ini的話无宿,如下即可:

找到display_errors = On 修改為 display_errors = off注意:如果你已經(jīng)把PHP.ini文件復制到windows目錄下,那么必須同時把c:windows/php.ini里的display_errors = On 修改為display_errors = off

PHP .ini中display_errors = Off失效的解決

在linux系統(tǒng)中開啟與關(guān)閉錯誤提示方法差不多,不過我還是具體給大家介紹一下

linux系統(tǒng)下

1. 打開php.ini文件。

以我的ubuntu為例忌堂,這個文件在: /etc/php5/apache2 目錄下尺铣。

2. 搜索并修改上下行拴曲,把Off值改成On

display_errors = Off

3. 搜索下行

error_reporting = E_ALL & ~E_NOTICE或者搜索:error_reporting = E_ALL & ~E_DEPRECATED修改為error_reporting = E_ALL | E_STRICT

4. 修改Apache的 httpd.conf,

以Ubuntu 為例凛忿, 這個文件在:/etc/apache2/ 目錄下澈灼,這是一個空白文件。

添加以下兩行:

php_flag display_errors? ? ? ? on

php_value error_reporting? ? ? 2039

5. 重啟Apache店溢,就OK了叁熔。

重啟命令: :

sudo /etc/init.d/apache2 restart

在php中靜態(tài)方法我們就直接在函數(shù)或變量前加一個static就可以了,使用的時候和靜態(tài)變量差不多床牧,不需要實例化荣回,直接用::調(diào)用了,下面我來給大家舉幾個關(guān)于靜態(tài)方法實例戈咳。

PHP也不例外心软!所謂靜態(tài)方法(屬性)就是以static關(guān)鍵詞標注的屬性或者方法(例如:靜態(tài)屬性public static username;)

靜態(tài)方法和非靜態(tài)方法最大的區(qū)別在于他們的生命周期不同,用一個實例來說明

靜態(tài)方法定義

定義靜態(tài)方法很簡單著蛙,在聲明關(guān)鍵詞function之前加上static糯累,例如:

class A{? ? static function fun()? ? {? ? ? ? // do somathing? ? }}

靜態(tài)方法使用

使用的時候和靜態(tài)變量差不多,不需要實例化册踩,直接用::調(diào)用泳姐,例如:

A::fun()

對比普通方法

因為靜態(tài)方法的調(diào)用不需要實例化,所以在靜態(tài)方法中引用類自身的屬性或者方法的時候會出錯暂吉,也就是形如self和$this是錯誤的胖秒。

class MyClass{? ? public $num = 5;? ? function __construct()? ? {? ? ? ? $this->num = 10;? ? }? ? function fun_1()? ? {? ? ? ? echo "I am a public method named fun_1.n";? ? ? ? echo "The num of object is {$this->num}.n";? ? }? ? static function fun_2()? ? {? ? ? ? echo "I am a static method named fun_2.n";? ? }? ? function fun_3($n)? ? {? ? ? ? echo "The arg is {$n}n";? ? }}$m = new MyClass;$m->fun_1();$m->fun_2();$m->fun_3('test');MyClass::fun_1();MyClass::fun_2();MyClass::fun_3('test');輸出結(jié)果:lch@localhost:php $ php class_method.php

I am a public method named fun_1.The num of object is 10.I am a static method named fun_2.The arg is test

I am a public method named fun_1.PHP Fatal error:? Using $this when not in object context in /Users/lch/program/php/class_method.php on line 14

再看一實例

用一個實例來說明。

class user{public static $username;? //聲明一個靜態(tài)屬性public $password;? ? //聲明一個非靜態(tài)屬性function __construct($pwd) {? echo ‘Username:’,self::$username;? //輸出靜態(tài)屬性

? self::$username = ‘a(chǎn)dmin’;? //為靜態(tài)屬性賦值? $this->password = $pwd;? //為非靜態(tài)屬性賦值}public function show(){? ? //輸出類屬性? echo ‘Username:’,self::$username;? echo ‘Password:’,$this->password;}public static function sshow(){? echo ‘Username:’,self::$username;? echo ‘Password:’,$this->password;}}user::$username = ‘root’;? ? //為賦值user類的靜態(tài)屬性賦值$objUser = new user(’123456′);? ? //實例化user類$objUser->sshow();unset($objUser);echo ‘Username:’,user::$username;/*

* 輸出結(jié)果為:

* Username:root

* Username:admin

* Password:123456

* Usern

ame:admin

* */

從這里實例中可以看出慕的,靜態(tài)屬性在類實例化以前就起作用了阎肝,并且在對象被銷毀時靜態(tài)屬性依然可以發(fā)揮作用!

也因為靜態(tài)方法的這種屬性肮街,所以不能在靜態(tài)方法中調(diào)用非靜態(tài)屬性或者方法

接著看

1风题、php類中,假設(shè)所有的屬性與方法的可見性為public,那么在外部訪問類的方法或?qū)傩詴r沛硅,都必須通過對象【類的實例化過程】來調(diào)用眼刃。

eg:

class Log{? ? public $root = DIRECTORY_SEPARATOR;? ? public $logPath = '/data/app/www/test-realtime.monitoring.c.kunlun.com/log';? ? public $defaultDir = 'default';? ?

? ? public function writeLog($logName, $logType, $data, $newDir = FALSE)? ? {? ? ? ? $fileName = '';? ? ? ?

? ? ? ? if (!file_exists($this->logPath))? ? ? ? {? ? ? ? ? ? mkdir($this->logPath, 0777);? ? ? ? }? ? ? ?

? ? ? ? if ($newDir !== FALSE)? ? ? ? {? ? ? ? ? ? @mkdir($this->logPath.$this->root.$newDir, 0777);? ? ? ? ? ? $fileName = $this->logPath.$this->root.$newDir.$this->root.date('Y-m-d', time()).'_'.$logName.'_'.$logType.'.log';? ? ? ? }? ? ? ? else

? ? ? ? {? ? ? ? ? ? @mkdir($this->logPath.$this->root.$this->defaultDir, 0777);? ? ? ? ? ? $fileName = $this->logPath.$this->root.$this->defaultDir.$this->root.date('Y-m-d', time()).'_'.$logName.'_'.$logType.'.log';? ? ? ? }? ? ? ?

? ? ? ? file_put_contents($fileName, date('Y-m-d H:i:s').' '.$data."n", FILE_APPEND);? ? }}

類的實例化對象的過程:$logObj = new Log();

訪問類中的方法:$logObj->writeLog($param1, $param2, $param3, $param4);

訪問類中的屬性:echo $logObj->root;

2、如果類中的屬性前被static關(guān)鍵字修飾時摇肌,就不能通過對象來訪問被static修飾的屬性擂红,但如果是類中的方法被static修飾時則即可以通過對象也可以通過類名::方法名的方式來進行訪問。

3围小、如果類中的方法被static修飾則昵骤,方法中不能用$this,$this指的是類的實例化對象肯适,由于靜態(tài)方法不用通過對象就可以調(diào)用变秦,所以偽變量$this不可用。

魔術(shù)方法是在php5中以__開頭的框舔,它們有著魔術(shù)般的功能蹦玫,可以給我開發(fā)帶來很多好處,下面我來給大家介紹魔術(shù)方法一些用法與在php中有那些魔術(shù)方法吧雨饺。

魔術(shù)方法是以兩個下劃線"__"開頭钳垮、具有特殊作用的一些方法惑淳,可以看做php的"語法糖"额港。

語法糖指那些沒有給計算機語言添加新功能,而只是對人類來說更"甜蜜"的語法歧焦。語法糖往往給程序員提供了更實用的編程方式或者一些技巧的用法移斩,有益于更好的編碼風格,是代碼更易讀绢馍。不過其并沒有給語言添加什么新東西向瓷。php里的引用、SPL等都屬于語法糖舰涌。

$tom = new family($student,'peking');$tom = people->say();

上面family類中的construct方法就是一個標準魔術(shù)方法猖任。這個魔術(shù)方法又稱構(gòu)造方法。有構(gòu)造方法就有對應(yīng)的西溝方法瓷耙,即destruct方法,西溝方法會在某個對象的所有引用都被刪除朱躺,或者當對象被顯式銷毀時執(zhí)行。這兩個方法是常見也是最游泳的魔術(shù)方法搁痛。

1长搀、__get、__set

這兩個方法是為在類和他們的父類中沒有聲明的屬性而設(shè)計的鸡典。

◆__get( $property ) 當調(diào)用一個未定義的屬性時源请,此方法會被觸發(fā),傳遞的參數(shù)是被訪問的屬性名。

◆__set( $property, $value ) 給一個未定義的屬性賦值時谁尸,此方法會被觸發(fā)舅踪,傳遞的參數(shù)是被設(shè)置的屬性名和值。

這里的沒有聲明包括當使用對象調(diào)用時症汹,訪問控制為proteced,private的屬性(即沒有權(quán)限訪問的屬性)硫朦。

2、__isset背镇、__unset

◆__isset( $property ) 當在一個未定義的屬性上調(diào)用isset()函數(shù)時調(diào)用此方法咬展。

◆__unset( $property ) 當在一個未定義的屬性上調(diào)用unset()函數(shù)時調(diào)用此方法。

與__get方法和__set方法相同瞒斩,這里的沒有聲明包括當使用對象調(diào)用時破婆,訪問控制為proteced,private的屬性(即沒有權(quán)限訪問的屬性)。

3胸囱、__call

__call( $method, $arg_array ) 當調(diào)用一個未定義的方法是調(diào)用此方法祷舀。

這里的未定義的方法包括沒有權(quán)限訪問的方法;如果方法不存在就去父類中找這個方法,如果父類中也不存在就去調(diào)用本類的__call()方法烹笔,如果本類中不存在__call()方法就去找父類中的__call()方法裳扯。

4、__autoload

__autoload 函數(shù)谤职,它會在試圖使用尚未被定義的類時自動調(diào)用饰豺。通過調(diào)用此函數(shù),腳本引擎在 PHP 出錯失敗前有了最后一個機會加載所需的類允蜈。

如果要定義一個全局的自動加載類冤吨,則必須用spl_autoload_register()方法將處理類注冊到PHP標準庫:


{? ? ? ? ?

? ? static function autoload_class($class_name)? ? ? ? {? ? ? ? ?

? ? //尋找正確的$class_name類,并引入饶套,沒有則拋出異常? ? ? ? ? ? ? }? ? ? ?

}? ? ? /**

*? 設(shè)置對象的自動載入? ? ? ?

*? spl_autoload_register — Register given function as __autoload() implementation? ? ?

*/?

spl_autoload_register(array(‘Loader’, ‘a(chǎn)utoload_class’));?

$a = new Test();//Test沒用require就實例化漩蟆,實現(xiàn)自動加載,很多框架就用這種方法自動加載類

注意: 在 __autoload 函數(shù)中拋出的異常不能被 catch 語句塊捕獲并導致致命錯誤妓蛮,所以應(yīng)該在函數(shù)本身做捕獲怠李。

5、__construct蛤克、__destruct

◆__construct 構(gòu)造方法捺癞,當一個對象創(chuàng)建時調(diào)用此方法,相對于PHP4使用此方法的好處是:可以使構(gòu)造方法有一個獨一無二的名稱,無論它所在的類的名稱是什么.這樣你在改變類的名稱時,就不需要改變構(gòu)造方法的名稱咖耘。

◆__destruct 析構(gòu)方法翘簇,PHP將在對象被銷毀前(即從內(nèi)存中清除前)調(diào)用這個方法。默認情況下,PHP僅僅釋放對象屬性所占用的內(nèi)存并銷毀對象相關(guān)的資源儿倒,析構(gòu)函數(shù)允 許你在使用一個對象之后執(zhí)行任意代碼來清除內(nèi)存版保。當PHP決定你的腳本不再與對象相關(guān)時,析構(gòu)函數(shù)將被調(diào)用呜笑。

在一個函數(shù)的命名空間內(nèi),這會發(fā)生在函數(shù)return的時候彻犁。對于全局變量,這發(fā)生于腳本結(jié)束的時候叫胁。如果你想明確地銷毀一個對象,你可以給指向該對象的變量分配任何其它值.通常將變量賦值勤為NULL或者調(diào)用unset。

6汞幢、__clone

PHP 5中的對象賦值是使用的引用賦值驼鹅,如果想復制一個對象則需要使用clone方法,在調(diào)用此方法是對象會自動調(diào)用__clone魔術(shù)方法森篷,如果在對象復制需要執(zhí)行某些初始化操作输钩,可以在__clone方法實現(xiàn)。

7仲智、__toString

__toString方法在將一個對象轉(zhuǎn)化成字符串時自動調(diào)用买乃,比如使用echo打印對象時。

如果類沒有實現(xiàn)此方法钓辆,則無法通過echo打印對象剪验,否則會顯示:Catchable fatal error: Object of class test could not be converted to string in,此方法必須返回一個字符串前联。

在PHP 5.2.0之前功戚,__toString方法只有結(jié)合使用echo() 或 print()時 才能生效。PHP 5.2.0之后似嗤,則可以在任何字符串環(huán)境生效(例如通過printf()啸臀,使用%s修飾符),但 不能用于非字符串環(huán)境(如使用%d修飾符)双谆。從PHP 5.2.0壳咕,如果將一個未定義__toString方法的對象 轉(zhuǎn)換為字符串席揽,會報出一個E_RECOVERABLE_ERROR錯誤顽馋。

8、__sleep幌羞、__wakeup

◆__sleep 串行化的時候用

◆__wakeup 反串行化的時候調(diào)用

serialize() 檢查類中是否有魔術(shù)名稱__sleep 的函數(shù)寸谜。如果這樣,該函數(shù)將在任何序列化之前運行属桦。它可以清除對象并應(yīng)該返回一個包含有該對象中應(yīng)被序列化的所有變量名的數(shù)組熊痴。

使用__sleep 的目的是關(guān)閉對象可能具有的任何數(shù)據(jù)庫連接,提交等待中的數(shù)據(jù)或進行類似的清除任務(wù)聂宾。此外果善,如果有非常大的對象而并不需要完全儲存下來時此函數(shù)也很有用。

相反地系谐,unserialize() 檢查具有魔術(shù)名稱 __wakeup 的函數(shù)的存在巾陕。如果存在讨跟,此函數(shù)可以重建對象可能具有的任何資源。使用 __wakeup 的目的是重建在序列化中可能丟失的任何數(shù)據(jù)庫連接以及處理其它重新初始化的任務(wù)鄙煤。

9晾匠、__set_state

當調(diào)用var_export()時,這個靜態(tài) 方法會被調(diào)用(自PHP 5.1.0起有效)梯刚。

本方法的唯一參數(shù)是一個數(shù)組凉馆,其中包含按array(’property’ => value, …)格式排列的類屬性。

10亡资、__invoke(PHP 5.3.0以上版本有效)

當嘗試以調(diào)用函數(shù)的方式調(diào)用一個對象時澜共,__invoke 方法會被自動調(diào)用。

11锥腻、__callStatic(PHP 5.3.0以上版本有效)

它的工作方式類似于__call() 魔術(shù)方法咳胃,__callStatic() 是為了處理靜態(tài)方法調(diào)用。

PHP 確實加強了對 __callStatic() 方法的定義;它必須是公共的旷太,并且必須被聲明為靜態(tài)的展懈。同樣,__call() 魔術(shù)方法必須被定義為公共的供璧,所有其他魔術(shù)方法都必須如此

php開啟與關(guān)閉錯誤提示詳解 – 逍遙樂

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末存崖,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子睡毒,更是在濱河造成了極大的恐慌来惧,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,029評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件演顾,死亡現(xiàn)場離奇詭異供搀,居然都是意外死亡,警方通過查閱死者的電腦和手機钠至,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,395評論 3 385
  • 文/潘曉璐 我一進店門葛虐,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人棉钧,你說我怎么就攤上這事屿脐。” “怎么了宪卿?”我有些...
    開封第一講書人閱讀 157,570評論 0 348
  • 文/不壞的土叔 我叫張陵的诵,是天一觀的道長。 經(jīng)常有香客問我佑钾,道長西疤,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,535評論 1 284
  • 正文 為了忘掉前任休溶,我火速辦了婚禮代赁,結(jié)果婚禮上撒遣,老公的妹妹穿的比我還像新娘。我一直安慰自己管跺,他們只是感情好义黎,可當我...
    茶點故事閱讀 65,650評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著豁跑,像睡著了一般廉涕。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上艇拍,一...
    開封第一講書人閱讀 49,850評論 1 290
  • 那天狐蜕,我揣著相機與錄音,去河邊找鬼卸夕。 笑死层释,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的快集。 我是一名探鬼主播贡羔,決...
    沈念sama閱讀 39,006評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼个初!你這毒婦竟也來了乖寒?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,747評論 0 268
  • 序言:老撾萬榮一對情侶失蹤院溺,失蹤者是張志新(化名)和其女友劉穎楣嘁,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體珍逸,經(jīng)...
    沈念sama閱讀 44,207評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡逐虚,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,536評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了谆膳。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片叭爱。...
    茶點故事閱讀 38,683評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖摹量,靈堂內(nèi)的尸體忽然破棺而出涤伐,到底是詐尸還是另有隱情馒胆,我是刑警寧澤缨称,帶...
    沈念sama閱讀 34,342評論 4 330
  • 正文 年R本政府宣布,位于F島的核電站祝迂,受9級特大地震影響睦尽,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜型雳,卻給世界環(huán)境...
    茶點故事閱讀 39,964評論 3 315
  • 文/蒙蒙 一当凡、第九天 我趴在偏房一處隱蔽的房頂上張望山害。 院中可真熱鬧,春花似錦沿量、人聲如沸浪慌。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,772評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽权纤。三九已至,卻和暖如春乌妒,著一層夾襖步出監(jiān)牢的瞬間汹想,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,004評論 1 266
  • 我被黑心中介騙來泰國打工撤蚊, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留古掏,地道東北人。 一個月前我還...
    沈念sama閱讀 46,401評論 2 360
  • 正文 我出身青樓侦啸,卻偏偏與公主長得像槽唾,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子光涂,可洞房花燭夜當晚...
    茶點故事閱讀 43,566評論 2 349

推薦閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理夏漱,服務(wù)發(fā)現(xiàn),斷路器顶捷,智...
    卡卡羅2017閱讀 134,633評論 18 139
  • 1. 配置php.ini打開php.ini挂绰,把display_errors = Off 改成 display_er...
    如果明日來臨閱讀 897評論 0 0
  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語法,類相關(guān)的語法服赎,內(nèi)部類的語法葵蒂,繼承相關(guān)的語法,異常的語法重虑,線程的語...
    子非魚_t_閱讀 31,598評論 18 399
  • 這兩天永澄老師去蘇州學習践付,每天直播他的學習成果,突然間意識到缺厉,很多東西自己都接觸過永高,或者說知道,但是都沒有轉(zhuǎn)...
    青苗媽2016閱讀 101評論 0 0
  • 喜 久旱甘霖圖緩潤提针,他鄉(xiāng)遇故寄君心命爬; 從今比翼雙飛伴,望盡功名可守貧辐脖。 怒 秋風暮雨阻歸途饲宛,名苑豪車看未足; 廚下...
    銓齋閱讀 406評論 0 12