重写已弃用的代码

时间:2011-12-07 08:45:48

标签: php

这行代码是创建一个拇指对象,但在php 5.3.x中有警告

“不推荐使用引用分配新的返回值”

if (FALSE === ($thumb =& new thumbnail_party(500, 500, '#FFFFFF', 'jpg', CACHE_PATH))) {

如何在没有任何警告的情况下重写它?

THX

3 个答案:

答案 0 :(得分:2)

删除&不再需要字符引用。它默认已通过引用传递。

答案 1 :(得分:1)

if(false === ($thumb = new thumbnail_party(500, 500, '#FFFFFF', 'jpg', CACHE_PATH))){
    // ...
}

但是,new运算符永远不会产生false,因此检查基本没有意义。

如果thumbnail_party是您可以控制的类,请考虑从构造函数中抛出异常:

try{
    $thumb = new thumbnail_part(/* ... */);
}catch(Exception $exception){
    // failed to create $thumb
}

答案 2 :(得分:0)

在php 5.3.x中,您无需指定&,在此处找到了答案:http://thinkinglemur.com/index.php/2009/07/assigning-the-return-value-of-new-by-reference-is-deprecated/

所以你可以使用它:

 (FALSE === ($thumb = new thumbnail_party(500, 500, '#FFFFFF', 'jpg', CACHE_PATH))) {