我正在尝试将一些变量从PHP传递给JS。
我看到here对于字符串,以下代码可以正常工作:
var str = "<?php echo $x; ?>";
我一直在用这个:
var var1 = <?= $var1 ?>;
我应该将哪一个用于int?第一个版本总是好的?第二个只是一个旧形式吗?我很乐意澄清和指导从php到js传递变量(dif类型)。
谢谢!
答案 0 :(得分:6)
首先,让我们来看看如何在javascript中声明一个变量。
有许多类型的变量,但我们可以看看int
和string
。字符串必须有引号。 Int
没有。
var int = 5;
var string = "hello";
现在,当我们将一个变量从php传递给javascript时,我们所做的就是在等号后用php中声明的变量替换值。您提到了回声变量的两种方法。
var str = "<?php echo $phpVariable; ?>";
var str = "<?= $phpVariable ?>";
如果这些变量是int
(顺便说一下,包括任何数字,无论是否为整数),php open和close标签周围都没有引号。现在,你说你更喜欢使用第二种方法。我真的建议你不要。即使键入<?= $phpVariable ?>
比<?php echo $phpVariable; ?>
容易得多,但前者并不是所有服务器都支持,而后者是。{您可以根据需要使用它,但如果您想移动到服务器,则需要先检查是否允许该syntex。
答案 1 :(得分:2)
那么, 让我们在PHP中说,
$php_int_variable = 5;
$php_string_variable = "Hello";
为了在javascript中获取它,如下所示,
var int = 5;
var string = "Hello";
你必须写,
var int = <?php echo $php_int_variable; ?>;
var string = "<?php echo $php_string_variable; ?> ";
答案 2 :(得分:0)
对于一般解决方案,请使用:
var data = JSON.parse("<?php echo addslashes(json_encode($data)); ?>");
答案 3 :(得分:0)
即使有问题的人,也要采取下一步行动!
var str = "<?php echo $x; ?>";
这是字符串!
和
var int = parseInt('<?php echo $x; ?>');
这对Int!
答案 4 :(得分:0)
var a = parseInt("10") + "<br>";
var b = parseInt("10.00") + "<br>";
var c = parseInt("10.33") + "<br>";
var d = parseInt("34 45 66") + "<br>";
var e = parseInt(" 60 ") + "<br>";
var f = parseInt("40 years") + "<br>";
var g = parseInt("He was 40") + "<br>";
var h = parseInt("10", 10)+ "<br>";
var i = parseInt("010")+ "<br>";
var j = parseInt("10", 8)+ "<br>";
var k = parseInt("0x10")+ "<br>";
var l = parseInt("10", 16)+ "<br>";
var n = a + b + c + d + e + f + g + "<br>" + h + i + j + k +l;
答案 5 :(得分:-1)
这两个版本是等效的。在php.ini中启用short_open_tag选项时,将启用第二个版本。在php 5.4中,即使没有启用short_open_tag,<?=
也可用。