foo @foo php,Yahoo-PHP面试题2

本文介绍了PHP中的错误处理方法,如普通调用与使用@符号的区别,强调了错误不应被隐藏而应妥善处理。同时,提到了PHP应用的调试方法,推荐使用Advanced PHP Debugger进行日志分析。此外,解释了`===`的严格相等比较,并给出示例说明`==`与`===`的不同。最后,简单展示了如何定义和实例化一个空类。
摘要由CSDN通过智能技术生成

Yahoo-PHP面试题2

1. foo() 與 @foo() 有什麼分別?2. 你如何替 PHP 的應用程式偵錯?3. 「===」是什麼?試舉一例「==」是真但「===」是錯。4....

1. foo() 與 @foo() 有什麼分別?

2. 你如何替 PHP 的應用程式偵錯?

3. 「===」是什麼?試舉一例「==」是真但「===」是錯。

4. 你會如何定義一個沒有成員函式或特性的類別 myclass?

5. 你如何產生一個 myclass 的物件?

以下是 Matt Wilkin 提供的解答:

1. foo() 與 @foo() 有什麼分別?

foo() 會執行這個函式,任何解譯錯誤、語法錯誤、執行錯誤都會在頁面上顯示出來。

@foo() 在執行這個函式時,會隱藏所有上述的錯誤訊息。

很多應用程式都使用 @mysql_connect() 和 @mysql_query 來隱藏 mysql 的錯誤訊息,我認為這是很嚴重的失誤,因為錯誤不該被隱藏,你必須妥善處理它們,可能的話解決它們。

2. 你如何替 PHP 的應用程式偵錯?

我並不常這樣做,我曾經試過很多不同的偵錯工具,在 Linux 系統中設定這些工具一點也不容易。不過以下我會介紹一個近來頗受注目的偵錯工具。

PHP – Advanced PHP Debugger 或稱 PHP – APD,第一步是執行以下的指令安裝:

pear install apd

安裝後在你的腳本的開頭位置加入以下的語句開始進行偵錯:

apd_set_pprof_trace();

執行完畢,打開以下檔案來查閱執行日誌:

apd.dumpdir

你也可以使用 pprofp 來格式化日誌。

詳細的資料可以參閱 http://us.php.net/manual/en/ref.apd.php。

3. 「===」是什麼?試舉一個「==」是真但「===」是假的例子。

「===」是給既可以送回布爾值「假」,也可以送回一個不是布爾值但卻可以賦與「假」值的函式,strpos() 和 strrpos() 便是其中兩個例子。

問題的第二部份有點困難,想一個「==」是假,但是「===」是真的例子卻很容易,相反的例子卻很少。但我終於找到以下的例子:

1

2

3

4

5

6

7

8

if (strpos("abc", "a") == true)

{

// 這部分永不會被執行,因為 "a" 的位置是 0,換算成布爾值「假」

}

if (strpos("abc", "a") === true)

{

// 這部份會被執行,因為「===」保證函式 strpos() 的送回值不會換算成布爾值.

}

4. 你會如何定義一個沒有成員函式或特性的類別 myclass?

1

2

3

class myclass

{

}

5. 你如何產生一個 myclass 的物件?

$obj = new myclass();

沒有比這個更簡單的了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值