将PHP变量传递给Javascript不能通过PHP函数工作(与全局变量无关)


Passing PHP-variable to Javascript doesn't work via PHP-function (not about global variables)

我想将"$var_external"传递给Javascript"SHOW"。

在这里,我调用该函数:

<?php
include("test23.php");
$call_function = test23(); 
?>

这是函数测试23.php:

<?php
function test23() {
$var_external = 9999;       // This doesn't work
print("<a href='"dummy'" id='"SHOW'">Activate script</a>");
}
?>    
<script type="text/javascript">
$( function () {
  $("a#SHOW").toggle( function() {  
    var var_external =  <?php echo $var_external; ?>;
    alert(var_external);
  }, 
  function () {
    return false;
  });
});

如果单击"激活脚本",$var_external应该传递给Javascript。

当在PHP函数设置$var_external时,它不起作用。

当我把$var_external放在PHP函数之外时,它可以工作。

为什么它不能在PHP函数中工作?

不要使用全局变量,养成习惯是一种不好的做法。

您应该将值作为参数传递到函数中:

function test23( $var_external ){
  // do stuff to modify it
  return $var_external;
}

然后打印结果:

<?php print test23($var_external); ?>

很难给出更好的建议,因为我不知道这些值的真正用途,以及为什么要修改它们。

其他一些提示:

  • 变量必须在函数外部创建global然后才能工作。
  • 确保始终打印一个值,如果它打印一个空/空值,javascript 将中断。或者,使用引号,然后转换为数字或任何您需要的内容

有同样的问题,使用 ''

var var_external =  '<?php echo $var_external; ?>';

如果 php 回显文本,似乎 java 脚本崩溃,如果 php echo int 不会崩溃。