0

特定の環境で発生するこれらの奇妙なエラーの 1 つを絞り込みました。

以下のコードは、Linux php 5.3.6 の既定のインストール、Windows php 5.4.3 の既定のインストールでは正常に解析されますが、Windows php 5.3.6 を使用している一部の Windows マシンでは失敗します。

受け取るメッセージは次のとおりです。

解析エラー: C:\bogus.php 行 7 の構文エラー、予期しない '}'

7行目は「}」です。

このエラーは php.ini の設定が原因だとしか思えません。誰が問題が何であるか知っていますか?

<?php
if(!empty($data['foo'])) {
    ?>
    <div>
        <?=$data['bar'];if(!empty($data['foo'])) {?> (Foo: <?=$data['foo'];?>) <?php }?></div>
    <?php
}
?>      
4

3 に答える 3

4

これは奇妙に見えます:

<?=$data['bar'];if(!empty($data['foo'])) {?>

<?=複数のステートメントが混在しています。私があなただったら、ここで短いタグを避けようとします。

short_open_tagsしかし、とにかく、これはWindowsマシンがphp.iniで有効になっていないことを意味すると思います。それを有効にすると、おそらく問題は解決します。

于 2012-05-22T17:10:48.920 に答える
2

{...}あなたの人生を少し楽にするために、これらすべてを変更します。

<?php if(!empty($data['foo'])):?>
    <div>
        <?php echo $data['bar'];
         if(!empty($data['foo'])):?> 
              (Foo: <?php echo $data['foo']?>) 
        <?php endif?>
    </div>
<?php endif?>      
于 2012-05-22T17:11:11.650 に答える
1
<?php
if(!empty($data['foo'])) {
    echo '<div>'.$data['bar'];if(!empty($data['foo']))echo 'Foo:'.$data['foo']; 
echo '</div>';
}
?>

エコー機能を使う

于 2012-05-22T17:12:51.403 に答える