当托管不支持!空($ value)我该怎么办?

时间:2014-02-02 19:34:38

标签: php arrays string wordpress

我在我的电脑上制作了一个网站我使用xampp和最新的php版本,网站是在WordPress上制作的,当我上传一个网站到用户主机我刚刚意识到他们没有最新的php版本,并要求支持他们说不是我们的问题,我们不想打破其他网站只是为了让你的工作。

那我该怎么办?对于我使用的一些数组!空来检查字符串是否返回空值,如果它不为空则显示内容。

这看起来像这样

if(!empty($current_meta['slides']) === true) {
get_slider( $current_meta['slides'] );
}

所以这适用于我的电脑,但在客户端托管它不起作用我得到一个错误

Can't use function return value in write context 

当我用print_r测试什么是输出时,它会产生这样的错误

 Illegal string offset 'slides'

当我做var_dump时,我得到了这个

string(0) ""

那么我该怎么做才能解决错误呢?

我尝试了,因为我在网上读了一些sugestions

if($current_meta['slides'] != '') {
vf_get_slider( $current_meta['slides'] );
}

但这会在我的电脑和在线主机上产生错误。

编辑

我按照下面的回答建议更新了我的所有文件,现在我就像这样

$slides_meta = $current_meta['slides'];
if(!empty($slides_meta)) {
    vf_get_slider( $current_meta['slides']);
}

它可以在我上传的服务器上运行,但现在错误开始显示在我自己的电脑上了。

我有PHP版本5.5.8,用户托管是5.3.22

3 个答案:

答案 0 :(得分:3)

PHP.net on empty:

empty() is essentially the concise equivalent to !isset($var) || $var == false.

因此,如果你需要替代!empty,那就是

 !(!isset($var) || $var == false)

(isset($var) && $var != false)

话虽这么说 - 你的主人几乎可以肯定是空的。然而,直到最近,PHP才开始支持空表达式。所以如果你有类似

的话
 if (!empty(trim($var))

您需要将其更改为:

 $var = trim($var);
 if (!empty($var))

答案 1 :(得分:0)

应该是

if($current_meta['slides'] != '') {
     vf_get_slider( $current_meta['slides'] );
}

您的代码中还有其他结束括号

答案 2 :(得分:0)

要解决您的问题,您应该替换以下代码:

if(!empty($current_meta['slides']) === true) {
    get_slider( $current_meta['slides'] );
}

有了这个:

if(!empty($current_meta['slides'])) {
    get_slider( $current_meta['slides'] );
}