我在我的电脑上制作了一个网站我使用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
答案 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'] );
}