ホームページ  >  記事  >  バックエンド開発  >  面倒な文字列の書き方

面倒な文字列の書き方

WBOY
WBOYオリジナル
2016-06-23 13:39:36924ブラウズ

文字列がある場合、それを変数に代入したい場合はどう書けばよいでしょうか? この文字列は非常に長いです
たとえば、変数は $txjs です
文字列は
onMouseOut="ycxl('xla' );" onMouseOver ="xsxl('xla',getPos(this,'Top')+16,getPos(this,'Left'));"

これを書いたときにエラーを報告しましたが、わかりませんなぜ
$txjs='onMouseOut="ycxl( 'xla');" onMouseOver="xsxl('xla',getPos(this,'Top')+16,getPos(this,'Left'));"

以下は報告されたエラーです
解析エラー: 構文エラー、D:WWWdgcmsedatatmpdt_templist6.php の 159 行目で予期しない 'xla' (T_STRING)

ディスカッションへの返信 (解決策)

すべての言語で同じです曖昧さを避けるため

二重引用符で囲まれた文字 文字列内の二重引用符と一重引用符で囲まれた文字列内の単一引用符の両方をエスケープする必要があります

PHP で合意されたエスケープ文字は

PHP では、カスタム区切り文字も提供されており、エスケープの面倒

$txjs =<<< JSonMouseOut="ycxl('xla');" onMouseOver="xsxl('xla',getPos(this,'Top')+16,getPos(this,'Left'));"JS;


文字列に変数を書いたのですが、エスケープで変数の値が出力されず、変数名が直接出力されてしまいました、つまり変数名が出力されてしまいました
$cssbh

$ txjs='onMouseOut=" ycxl('{$cssbh}');" onMouseOver="xsxl('{$cssbh}',getPos(this,'Top')+16,getPos(this,'Left')); "';


$txjs='onMouseOut="ycxl('{$cssbh}');" onMouseOver="xsxl('{$cssbh}',getPos(this,'Top')+16,getPos( this,'Left') );"';書き込みが機能しません
どうしたのですか?

文字列内の PHP 変数は、二重引用符で囲まれた場合にのみ値に置き換えられます
これは PHP の規約ですので、遵守してください。理由はありません

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。