我遇到了不同版本的PHP数组的一些问题。我正在为wordpress主题创建一个自定义组合页面,它使用最新的PHP版本在localhost上完美运行。但是当我想在网上尝试时,我收到了一个错误:
解析错误:语法错误,意外' [',期待','或';'在/wordpress/wp-content/themes/theme/functions.php第72行
服务器正在运行PHP版本4.0.10.14,我需要在那里安装组合。有没有办法将此行转换为与旧的PHP版本兼容,但是仍然可以在最新的PHP版本中使用它?
<img src="<?php echo get_post_meta(get_the_ID(), 'portfolio_imgs',
true)[$i]['url']; ?>" width="96" height="54"/>
以下是代码的完整部分:
$portfolio_array = get_post_meta(get_the_ID(), 'portfolio_imgs', true);
$arrlength = count($portfolio_array);
for ($i=0; $i<$arrlength; $i++) {
?>
<div class="uploaded_images" id="image_<?php echo "$i" ?>"
onClick="delete_image(<?php echo $i; ?>)">
<img src="<?php echo get_post_meta(get_the_ID(), 'portfolio_imgs',
true)[$i]['url']; ?>" width="96" height="54"/>
<input type="hidden" id="id<?php echo $i ?>" name="selection[]" value="keep"/>
</div>
<?php
}
?>
答案 0 :(得分:1)
5.5之前的PHP(或5.4我不确定)不允许在函数调用后立即索引数组。
您的代码可以通过以下方式重写:
<?php
$src = get_post_meta(get_the_ID(), 'portfolio_imgs', true);
$src = $src[$i]['url'];
?>
<img src="<?php echo $src; ?>" width="96" height="54" />
答案 1 :(得分:1)
假设您的get_post_meta()
函数返回一个有效数组,则以下内容应该有效:
$result = get_post_meta(get_the_ID(), 'portfolio_imgs', true);
<img src="<?php echo $result[$i]['url']; ?>" width="96" height="54"/>
您当前的版本正在使用PHP 5.4中引入的所谓“功能阵列解除引用”。