2016-07-01 11 views
0

Ich habe einige Probleme mit den verschiedenen Versionen von PHP-Arrays. Ich erstelle eine benutzerdefinierte Portfolio-Seite für ein Wordpress-Thema und es funktioniert perfekt auf localhost mit der neuesten PHP-Version. Allerdings, wenn ich wollte, um es online versuchen, bekam ich einen Fehler:PHP Version Unterschiede von Arrays

Parse error: syntax error, unexpected '[', expecting ',' or ';' in /wordpress/wp-content/themes/theme/functions.php on line 72

Der Server läuft eine PHP-Version 4.0.10.14 und ich brauche das Portfolio um dort zu installieren. Gibt es eine Möglichkeit, diese Zeile zu konvertieren, um mit der alten PHP-Version kompatibel zu sein, aber immer noch möglich, sie in den neuesten PHP-Versionen zu verwenden?

<img src="<?php echo get_post_meta(get_the_ID(), 'portfolio_imgs', 
true)[$i]['url']; ?>" width="96" height="54"/> 

Dies ist der komplette Abschnitt des Codes:

$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 
} 
?> 
+6

Du machst Witze, dass es 'PHP Version 4.0.10.14' läuft, richtig? –

+0

Ist das ' Quentin

+0

I am serious its running that old PHP version :S – iwan

Antwort

1

Angenommen, Ihre get_post_meta() Funktion ein gültiges Array zurückgibt, dann sollten folgende Arbeiten:

$result = get_post_meta(get_the_ID(), 'portfolio_imgs', true); 
<img src="<?php echo $result[$i]['url']; ?>" width="96" height="54"/> 

Ihre aktuelle Version verwendet, was "genannt wird, Funktions-Array-Dereferenzierung ", die in PHP 5.4 eingeführt wurde.

1

PHP vor 5.5 (oder 5.4 ich bin mir nicht sicher) nicht erlauben, zu indizieren Array unmittelbar nach dem Funktionsaufruf.

Ihr Code kann auf diese Weise neu geschrieben werden:

<?php 
$src = get_post_meta(get_the_ID(), 'portfolio_imgs', true); 
$src = $src[$i]['url']; 
?> 
<img src="<?php echo $src; ?>" width="96" height="54" />