<?php
class anything {
const const_name = 'value';
const const_name = 'value2';
}
?>
<?php
$var1 = "value";
function return_val() {
global $var_name;
return $var_name;
}
$var2 = &return_val();
?>
这段代码过去是可以工作的(直到5.0.4版本),但是现在在5.1版本中会抛出一个e_strict异常。
也许5.1.x不久也会退场,但是其中引入了许多有价值的改进-pdo的引入可能是最值得称道的。要详细了解php文档中的更改日志,可以看一下这里有关php 5.1(和早些版本)变化的详尽列表。
三、php 6.0中要作的改变
php 6.0估计会是一个相当激动人心的发行。然而,什么东西都是一分为二的。不过,看起来最令我气恼的三个家伙(register_globals,magic_quotes_gpc和safe_mode)可能要退位了。第一个存在一个很大的安全漏洞;第二个由于操作大量数据所以在改变环境时简直就是一场梦魇;而第三个是一个无人能理解的错误的名称并且会给人带来一种安全方面的错觉。在unicode问题上,还有大量的工作要做。下面是预计的一些新变化:
·register_globals,safe_mode和各种魔术引用选项将被删除。
·ereg扩展将被删除,而xmlreader,xmlwriter和fileinfo扩展将被添加到内核上并且在缺省情况下为on状态。
·我发现的另外一处令人激动的新变化是,apc(alternative php cache)将被添加到内核上,尽管在缺省情况下为off状态。apc可以为开发者提供严谨的性能益处。
·所有的e_strict消息将被合并进e_all-这又是针对良好编程实践所作出的一个积极更改。
·不再支持asp风格的标签<%。
·引入了新的64位整型数。当前的整数类型被保留下来-至于是32还是64位将依赖平台而定。
·可以结合多维数组使用foreach,例如foreach($array as $k => list($a, $b))。
·在php.ini新引入的一个开关将允许你禁止unicode语义(缺省地,它们被置为on状态)。
·还有各种针对unicode的字符串操作上的改进。
·microtime()函数将返回完整的浮点数,而不是象目前的微秒值unix_timestamp。这样更可能有利于大多数人的使用。
·不再支持用于字符串索引的{}注释,而[]版本将被添加到substr()和array_slice()功能中。以前的[]为许多人所批评,但是大多数的开发者,包括我在内,都一直使用[]。
·在针对cgi sapi情形时,将一直启用fastcgi,并且不会被禁止。
·不再支持古老的http_*_vars全局变量。
·var将有一个新的别名public。在php4 类中var是被允许的,但是在php 5中,这将会引发一个警告。在php 6中,var将仅是public的一个别名,因此将不会再出现警告。
·ze1兼容性模式将被删除-这一方式原来试图保留php 4的行为但是却存在一些错误。
·不再允许用静态语法来调用动态函数。
另外,还存在许多要决定的问题,例如命名空间可能更为重要,但是目前基本上还没有得到同意。你可以读一下最近的php开发者会议上对于php 6的详细讨论。尽管php 6尚未出台,但是我相信在其最终发行之前一定存在不少周折。尽管如此,php所做出的贡献已得到业界的充分认可,其前途是一片光明的。
最大的网站源码资源下载站,
新闻热点
疑难解答