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