2017-08-06 9 views
-2

私は実際にはPHPやJQueryを初めて使用しているわけではありません。それはこのエラーをさらに見知らぬものにします。これらの2つのコードサンプルを考えてみましょう。 (私はこの記事のために約5分でそれらを一緒にハッキング、彼らは単純化し、散らかっているので - しかし、ポイントを作る)Jquery/JavaScriptを埋め込むときにPHPエラーが発生する

<?php 
print<<<HERE 
<head> 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1  /jquery.min.js"></script> 
<script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.11.4/jquery- ui.min.js"></script> 
</head> 
<p>Error show</p> 
<button id="targetbutton" style="height: 60px width: 100px">mouse in</button> 
<script> 
$("#targetbutton").mouseover(function() 
{$("p").css("color", "red") 
}); 
</script> 
HERE; 
?> 

<?php 
print<<<HERE 
<head> 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script> 
<script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.11.4/jquery-ui.min.js"></script> 
</head> 
<p>Error show</p> 
<button id="targetbutton" style="height: 60px width: 100px">mouse in</button> 
<script> 
/* 
$("#targetbutton").mouseover(function() 
{$("p").css("color","red") 
}); 
*/ 
</script> 
HERE; 
?> 

これらの両方のコードブロックは、このエラーを生成します。 解析エラー:構文エラー変数(T_VARIABLE期待して、 '('、予期しない)、またはライン11 (実際には二番目が言うのでは... '$' ...ライン12 - 明らかに)

THI Sコードの動作:

私が言及したように、私は、この幾分面倒で単純な例をまとめると、ポイントを作っています。しかし、私は最初に、私が作成している形式のウェブサイトのエラーを見ました - そのため、コードの美しさやその欠如は問題ではないようです。) 1. PHPがなぜエラーを投げているのですか?非PHPコード(11行目はスクリプトタグ内にあります)? 2.コメントアウトされたコードに関するPHPのエラーの原因は何ですか? 3.中括弧の動きが突然すべてを解決するのはなぜですか? 私はそれを働かせて以来、この質問は認識論的だが興味深い。

+0

奇妙なものは、それが文書化されているとして、それは動作しますが、ここにはありません。 [PHP Strings](http://php.net/manual/en/language.types.string.php)を読んでください。 – axiac

答えて

0

HEREDOC(および二重引用符付き文字列)では、{$に補間された変数または式が導入されています。

あなたは完全にPHPモードからドロップアウト、またはNOWDOCを使用するか、ブラウザにコンテンツをダンプする場合:

print <<<'HERE' 
Note single-quotes around keyword 
You can now have anything you like here and PHP won't try 
to mess with it. 
HERE; 
+0

うわー...ほぼ10年のPHPで、$ {heradocsの内部}を知りませんでした。ありがとう! –

関連する問題