“
”
起 函式库 的时候,别忘记这两个函式。
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()