gpt4 book ai didi

javascript - PHP 和 JavaScript 源代码,字符串比较错误

转载 作者:行者123 更新时间:2023-11-28 19:56:38 25 4
gpt4 key购买 nike

我有这个来源:

<div id="tst"></div>

<?php
function test($txt) {
if ($txt == "aa") {
return "true!";
}
return "false!";
}
?>

<script>
document.getElementById('tst').innerHTML = "<?php echo test('%s'); ?>".replace("%s","aa");
</script>

在这一行中:if ($txt == "aa") {

为什么'if'显示错误? (含义:aa != aa)

我注意到的其他事情,如果我使用 0 而不是 aa (在 JS 和 php 源代码中),并且在 php 源代码中我使用“0”(带撇号),则 'if' 告诉我“假”(意思是:0!= 0)。 (EX.1)

但是如果我在 php 源代码中使用 at 0 (不带撇号),则 if 显示“true”(意味着 0 == 0)。 (EX.2)

ex.2 是唯一可以正常工作的!

有人明白问题出在哪里吗?我该如何修复它?

EX.1:

<div id="tst"></div>

<?php
function test($txt) {
if ($txt == "0") { // with apostrophes
return "true!";
}
return "false!";
}
?>

<script>
document.getElementById('tst').innerHTML = "<?php echo test('%s'); ?>".replace("%s","0");
</script>

EX.2:

<div id="tst"></div>

<?php
function test($txt) {
if ($txt == 0) { // with no apostrophes
return "true!";
}
return "false!";
}
?>

<script>
document.getElementById('tst').innerHTML = "<?php echo test('%s'); ?>".replace("%s","0");
</script>

最佳答案

你正在执行

<?php echo test('%s'); ?>

这是比较'%s' == 'aa',这是错误的。

Ex.2 返回 true 的原因是,当您将字符串与数字进行比较时,它会将字符串转换为数字。不包含有效数字的字符串将转换为 0,因此 '%s' == 0 相当于 0 == 0 ,这是真的。

您在 Javascipt 中调用 replace ,但当创建页面发送到客户端时,PHP 在服务器上运行,因此它不会看到 Javascript 更改(它们会在将来发生,它们如何影响 PHP?)。

如果你想从JS到PHP通信,你必须使用AJAX。

关于javascript - PHP 和 JavaScript 源代码,字符串比较错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22425415/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com