如果有一个字符串,我想把它赋给一个变量应如何写,这个字符串很长哈
如
变量是$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'));"'
下面是报的错误
Parse error: syntax error, unexpected 'xla' (T_STRING) in D:\WWW\dgcms\e\data\tmp\dt_templist6.php on line 159
回复讨论(解决方案)
所有语言都是一样的,为了避免出现歧义
用双引号括起的字符串中的双引号 和 用单引号括起的字符串中的单引号
都需要转义
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 的约定,请遵守。没有为什么