PHPエラー「PHP Parse error: syntax error, unexpected T_DOUBLE_ARROW」の原因と解決方法

PHPプログラミングをしていると、プログラミングミスをして、

PHP Parse error: syntax error, unexpected T_DOUBLE_ARROW

といったエラーになることがある。

このエラーの原因としては、「=>」(T_DOUBLE_ARROW)の使い方に誤りがあることが考えられる。

従って、このエラーの解決方法は、「=>」を使っている箇所を眺め、使い方が正しいかどうかを確認することにある。

《PHPエラーが発生する誤ったプログラムの例とLinuxコンソールでの実行結果》
<?php
$test_array = array("a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z");

foreach($test_array => $value){
echo $value;
echo PHP_EOL;
}
?>

# php test.php
PHP Parse error: syntax error, unexpected T_DOUBLE_ARROW in /var/tmp/phptest/test.php on line 4

このプログラム内のforeach関数の使い方には誤りがある。

誤 foreach($test_array => $value){

正 foreach($test_array as $value){

配列「$test_array」から、値を取得する場合、「=>」(T_DOUBLE_ARROW)ではなく、「as」を使う。

《PHPエラーが発生しない正しいプログラムの例とLinuxコンソールでの実行結果》
<?php
$test_array = array("a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z");

foreach($test_array as $value){
echo $value;
echo PHP_EOL;
}
?>

# php test.php
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z

なお、配列「$test_array」から、キーと値を取得する場合、「as」と「=>」(T_DOUBLE_ARROW)の両方を使用する。

<?php
$test_array = array("a","b","c","d","e","f","g","h","i","j","k","l","m","n","o",
"p","q","r","s","t","u","v","w","x","y","z");

foreach($test_array as $key => $value){
echo $key;
echo "=>";
echo $value;
echo PHP_EOL;
}
?>

# php test.php
0=>a
1=>b
2=>c
3=>d
4=>e
5=>f
6=>g
7=>h
8=>i
9=>j
10=>k
11=>l
12=>m
13=>n
14=>o
15=>p
16=>q
17=>r
18=>s
19=>t
20=>u
21=>v
22=>w
23=>x
24=>y
25=>z

前へ

Linux(CentOS 6)でログインパスワードを間違えた時に記録されるログ

次へ

『RED DAWN / レッド・ドーン』を観た感想