PHP回声javascript-不回声$

时间:2018-09-09 19:42:48

标签: javascript php jquery

我正在像这样使用PHP回显一个JavaScript块...

echo "<script language='javascript' type='text/javascript'>
        jQuery(document).ready(function($){
            var $lg = $('#mydiv');
        });
";

但是我收到以下错误消息...

Notice: Undefined variable: lg 

当我检查源代码时,定义$ lg的行如下所示……

var = $('#mydiv');

任何想法为什么会发生? $是否需要转义?

3 个答案:

答案 0 :(得分:5)

在PHP中使用双引号时,变量将插在字符串内,例如:

$name = "Elias";
echo "My name is $name";

这将打印My name is Elias

如果要在字符串中使用$,则必须对其进行转义或使用单引号:

$name = "Elias";
echo "I love the variable \$name";
echo 'I love the variable $name';

两个回声都将打印I love the variable $name

此外,由于使用了双引号,因此您在字符串中的html上使用了单引号。 这是无效的HTML,尽管浏览器可以正确地对其进行解析。(实际上是有效的,抱歉)

正确的方法是对字符串使用单引号或转义双引号:

echo "<script language=\"javascript\" type=\"text/javascript\">";
// or
echo '<script language="javascript" type="text/javascript">';

答案 1 :(得分:0)

是的,的确,当您在PHP中回显“-”分隔的字符串时,所有以$开头的内容都被解释为变量。

您需要像这样对字符串进行转义:

echo "<script language='javascript' type='text/javascript'>
    jQuery(document).ready(function(\$){
        var \$lg = \$('#mydiv');
    });";

为了安全起见,应转义字符串中的所有$

答案 2 :(得分:0)

当使用双引号php插值变量时,因此它试图求lldb的值,这就是为什么它没有显示在输出中。

如果在回显上更改为单引号,则应该可以使用。

或者在双引号字符串上用反斜杠($lg)来转义$