準・究極の選択

●質問の主旨

下記のコードでを実行しようとすると、
print('<img src="'.$img.'" alt="'.$prof[0].'" />');
のところで、
Parse error: syntax error, unexpected 'src' (T_STRING)
が出ます。

どこを修正すればよいのでしょうか?
ご存知のかたよろしくお願いします。


●コード


<?php
foreach($data as $name => $prof) {
$img ='';
$pos = mb_strpos($name, $_POST['keywd']);
if ($pos !== FALSE) {
$img = '../images/male.gif';
} else if ($prof[0] === '男') {
$img = '../images/female.gif';
} else {
$img = '../images/other.gif;
}
print('<img src="'.$img.'" alt="'.$prof[0].'" />');
print('<dt>'.$name.'</dt>');
print('<dd>性別:'.$prof[0].'</dd>');
print('<dd>誕生日:'.$prof[1].'</dd>');
print('<dd>住所:'.$prof[2].'</dd>');
}
}
?>

A 回答 (3件)

$img = '../images/other.gif;



よ~く見てみな。「;」の手前に、何かが足りないから。

んで、こういうエラーでハマるのは、「'」を多用するから、が原因。

「'」って、ソースコードの「改行」も無視して、「'」が閉じるまで「とにかく全部文字列」って言う動きをする。

だから、こういうミスをすると、次に「'」が現れるまで、ずっと「変なコンパイル」になって「訳の判らない行でエラー」になる。

ソースコードの中の「'」を、可能な限り「"」に書き換えてごらん。

そうしたら『「"」を閉じ忘れた所でちゃんとエラーが出る』から、今回みたいな罠にはハマらない。

PHPで書くなら、「'」は極力使わない、可能なら一切使わないで書くこと。
    • good
    • 0
この回答へのお礼

chie65535さま
ご回答ありがとうございます。

>ソースコードの中の「'」を、
可能な限り「"」に書き換えてごらん。

書き換えたらあっという間にエラーが消えました。
助かります。今後の参考とさせていただきます。

お礼日時:2013/04/10 16:32

そのエラー行の2行上



$img = '../images/other.gif;

のシングルクォーテーションが閉まっていないのが原因でしょう

ちなみに、「}」の数もあってないですね
    • good
    • 0
この回答へのお礼

yambejpさま
ご回答ありがとうございます!

$img = '../images/other.gif';
ですね。修正いたしました。
アドバイス助かります。

お礼日時:2013/04/10 16:35

>$img = '../images/other.gif;



文字列リテラルを定義している引用符が閉じられていない。

前の質問でも同じような『見落とし』をしていたと思います。もう少し注意深く書いて(タイプして)、かつエラーが出たらじっくり見直してください。

http://okwave.jp/qa/q8035799.html

普通は文法エラーで質問するのは恥ずかしいことです。∵ 注意すれば防げる・自分で見つけられることなので・・・
    • good
    • 0
この回答へのお礼

agunuzさま
ご回答ありがとうございます!

$img = '../images/other.gif';
ですね。修正いたしました。
アドバイス助かります。

>同じような『見落とし』

そうですね。落ち着いてコードをよく見るようにします。
アドバイス参考にいたします。

お礼日時:2013/04/10 16:37

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


おすすめ情報