代码之家  ›  专栏  ›  技术社区  ›  fightstarr20

PHP echo javascript-不回显$[duplicate]

  •  0
  • fightstarr20  · 技术社区  · 6 年前

    我在用PHP回音一个javascript块,就像这样。。。

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

    但我收到以下错误信息。。。

    Notice: Undefined variable: lg 
    

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

    var = $('#mydiv');
    

    3 回复  |  直到 6 年前
        1
  •  5
  •   Elias Soares    6 年前

    在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">';
    
        2
  •  0
  •   Carsten Massmann    6 年前

    是的,事实上,当您在PHP中回显“-”分隔的字符串时 $ 被解释为变量。

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

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

    为了安全起见,你应该逃离所有的危险 在弦中。

        3
  •  0
  •   GMachado    6 年前

    当使用双引号php插值变量时,它试图计算 $lg ,这就是它不显示在输出上的原因。

    或者只是逃跑 $ \