<?php
var_dump(strrpos(‘ABCDEF',‘DEF')); //int(3)
var_dump(strrpos(‘ABCDEF',‘DAF')); //bool(false)
?>
实例: 没有属性的对象不再被当成“empty”
<?php
class test { }
$t = new test();
var_dump(empty($t)); // echo bool(false)
if ($t) {
// Will be executed
}
?>
实例: 有些情况下类必须在使用之前定义
<?php
//works with no errors:
$a = new a();
class a {
}
//throws an error:
$a = new b();
interface c{
}
class b implements c {
}
?>
二、CLI 和 CGI
PHP 5 中对 CLI 和 CGI 文件名作了些改变。PHP 5 中,CGI 版本被改名为 php-cgi.exe(以前是 php.exe),现在主目录中的是 CLI 版本(之前是 cli/php.exe)。
PHP 5 中引进了一种新模式:php-win.exe。这和 CLI 版本相同,只除了 php-win 不输出任何内容,因此不会提供控制台(屏幕上不会闪过“dos 窗口”)。此行为类似 php-gtk。
PHP 5 中,CLI 版本总会产生全局变量 $argv 和 $argc 而不管 php.ini 是怎么设的。即使将register_argc_argv设为 off 也不影响 CLI。
参见命令行模式。
三、移植配置文件
由于 ISAPI 模块的名字改了,从 php4xxx 改为 php5xxx,因此需要对配置文件作些修改。CLI 和 CGI 文件名也改了。更多信息请查看相应章节。
移植 Apache 配置极其简单。照下面的例子来检查需要做的修改:
实例: 移植 Apache 配置文件到 PHP 5
# 将下面这行: LoadModule php4_module /php/sapi/php4apache2.dll # 改成这一行: LoadModule php5_module /php/php5apache2.dll
如果 web 服务器是以 CGI 模式运行 PHP 的,应该注意 CGI 版本的名字从 php.exe 改为了 php-cgi.exe。在 Apache 中,应该照这样改:
实例: 移植 Apache 配置文件到 PHP 5,CGI 模式
# 将下面这行: Action application/x-httpd-php "/php/php.exe" # 改成这一行: Action application/x-httpd-php "/php/php-cgi.exe"
其它的 web 服务器中,需要修改 CGI 或者 ISAPI 模块的名字。
四、新函数
PHP 5 有了些新函数。下面是列表:
Arrays:
array_combine() - 用一个数组作为键名,另一个数组作为值创建一个新数组
array_diff_uassoc() - 计算数组的差别,并用用户提供的回调函数作附加的索引检查
array_udiff() - 用回调函数比较数据来计算数组的差别
array_udiff_assoc() - 计算数组的差别并作附加的索引检查。用回调函数来比较数据
array_udiff_uassoc() - 计算数组的差别并作附加的索引检查。数据的比较和索引检查都用回调函数来完成
array_walk_recursive() - 对数组的每个成员递归使用用户函数
array_uintersect_assoc() - 计算数组的交集并作附加的索引检查。用回调函数来比较数据
array_uintersect_uassoc() - 计算数组的交集并作附加的索引检查。数据和索引都用回调函数来比较







