background image

起 函式库 的时候,别忘记这两个函式。

 

6.foo() 

 

与 @foo() 有什么分别?

foo() 会执行这个函式,任何解译错误、语法错误、执行错误都会在页面上显示出来。
@foo() 在执行这个函式时,会隐藏所有上述的错误讯息。

 

很多应用程式都使用 @mysql_connect()   

和 @mysql_query 

 

来隐藏 mysql 的错误讯息,我认

为这是很严重的失误,因为错误不该被隐藏,你必须妥善处理它们,可能的话解决它们。

7.

 

你如何替 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

8.“===”

是什么?试举一个 ==”

是真但 ===”是假的例子。

“===”

“ ”

“ ”

是给既可以送回布尔值 假 ,也可以送回一个不是布尔值但却可以赋与 假 值的函

式,strpos()   

和 strrpos() 便是其中两个例子。

问题的第二部份有点困难,想一个 ==”

是假,但是 ===”是真的例子却很容易,相反的

例子却很少。但我终于找到以下的例子:
if (strpos("abc", "a") == true){    // 

 

这部分永不会被执行,因为 "a" 

 

的位置是 0,换算成布尔

“ ”

值 假 }if (strpos("abc", "a") === true){    // 

这部份会被执行,因为 ===”

 

保证函式 strpos() 

的送回值不会换算成布尔值.}

9.

 

你会如何定义一个没有成员函式或特性的类别 myclass?

class myclass{}

10.

 

你如何产生一个 myclass 的物件?

$obj = new myclass();

11.在一个类别内如何存取这个类别的特性及变改它的值?

使用语句:$this->propertyName,例如:
class myclass{ private $propertyName; public function __construct() {    $this->propertyName = 
"value"; }}

12.include 

 

和 include_once 有什么分别?require 又如何?

 

三者都是用来在脚本中插入其他档案,视乎 url_allow_fopen 是否核准,这个档案可以从
系统内部或外部取得。但他们之间也有微细的分别:
include():这个函式容许你在脚本中把同一个档案插入多次,若果档案不存在,它会发出
系统警告并继续执行脚本。
include_once()

 

:它跟 include() 的功能相似,正如它的名字所示,在脚本的执行期间,有

关档案只会被插入一次。
require()

 

:跟 include() 差不多,它也是用来在脚本中插入其他档案,但若果档案不存在,

它会发出系统警告,这个警告会引致致命错误令脚本中止执行

13.以下哪一个函式可以把浏览器转向到另一个页面?
redir()

 

这不是一个 PHP 函式,会引致执行错误。

header()