PHP 即使我改变了变量也没有改变
PHP Variable Is Not Changing Even I Change It
我已经编写代码来获取移动屏幕分辨率检查的文档分辨率。事件侦听器检查客户端宽度,如果分辨率 <= 768 php var 应该变为 true
否则 false
.
<script>
window.addEventListener("resize", function (e){
var width = document.body.clientWidth;
console.log(document.body.clientWidth);
if (width <= 768) {<?php $mobileScreenRes = true; ?> console.log("if: " + <?php echo json_encode($mobileScreenRes); ?>); }
else {<?php $mobileScreenRes = false; ?>console.log("else : " + <?php echo json_encode($mobileScreenRes); ?>); }
console.log("final:" + <?php var_export($mobileScreenRes); ?>);
console.log("isset :" + <?php echo isset($mobileScreenRes); ?>);
});
</script>
我可以得到宽度,但不能按我想要的方式使用它。 $mobileScreenRes变量是一个全局变量。控制台输出为:
795
VM45496:6 else : false
VM45496:7 final : false
VM45496:8 isset : 1
582
VM45496:5 if : true
VM45496:7 final :false
VM45496:8 isset : 1
我不明白为什么 final 总是假的,即使有 if 语句?
我重新格式化了代码以使其更容易理解:
<script>
window.addEventListener("resize", function (e) {
var width = document.body.clientWidth;
console.log(document.body.clientWidth);
if (width <= 768) {
<?php $mobileScreenRes = true; ?>
console.log("if: " + <?php echo json_encode($mobileScreenRes); ?>);
} else {
<?php $mobileScreenRes = false; ?>
console.log("else: " + <?php echo json_encode($mobileScreenRes); ?>);
}
console.log("final: " + <?php var_export($mobileScreenRes); ?>);
console.log("isset: " + <?php echo isset($mobileScreenRes); ?>);
});
</script>
这里有两种语言:PHP 和 JavaScript。
重要的是要知道:
- 所有 PHP 首先执行,它不关心 JavaScript。具体而言,这是在页面发送给用户之前由网络服务器执行的。
- 所有JavaScript都在PHP之后执行。这是由用户的浏览器执行的。
在第 1 步之后页面将如下所示:
<script>
window.addEventListener("resize", function (e) {
var width = document.body.clientWidth;
console.log(document.body.clientWidth);
if (width <= 768) {
console.log("if: " + true);
} else {
console.log("else: " + false);
}
console.log("final: " + false);
console.log("isset: " + 1);
});
</script>
这意味着当第 2 步运行时,最后两行已经设置好。
我已经编写代码来获取移动屏幕分辨率检查的文档分辨率。事件侦听器检查客户端宽度,如果分辨率 <= 768 php var 应该变为 true
否则 false
.
<script>
window.addEventListener("resize", function (e){
var width = document.body.clientWidth;
console.log(document.body.clientWidth);
if (width <= 768) {<?php $mobileScreenRes = true; ?> console.log("if: " + <?php echo json_encode($mobileScreenRes); ?>); }
else {<?php $mobileScreenRes = false; ?>console.log("else : " + <?php echo json_encode($mobileScreenRes); ?>); }
console.log("final:" + <?php var_export($mobileScreenRes); ?>);
console.log("isset :" + <?php echo isset($mobileScreenRes); ?>);
});
</script>
我可以得到宽度,但不能按我想要的方式使用它。 $mobileScreenRes变量是一个全局变量。控制台输出为:
795
VM45496:6 else : false
VM45496:7 final : false
VM45496:8 isset : 1
582
VM45496:5 if : true
VM45496:7 final :false
VM45496:8 isset : 1
我不明白为什么 final 总是假的,即使有 if 语句?
我重新格式化了代码以使其更容易理解:
<script>
window.addEventListener("resize", function (e) {
var width = document.body.clientWidth;
console.log(document.body.clientWidth);
if (width <= 768) {
<?php $mobileScreenRes = true; ?>
console.log("if: " + <?php echo json_encode($mobileScreenRes); ?>);
} else {
<?php $mobileScreenRes = false; ?>
console.log("else: " + <?php echo json_encode($mobileScreenRes); ?>);
}
console.log("final: " + <?php var_export($mobileScreenRes); ?>);
console.log("isset: " + <?php echo isset($mobileScreenRes); ?>);
});
</script>
这里有两种语言:PHP 和 JavaScript。
重要的是要知道:
- 所有 PHP 首先执行,它不关心 JavaScript。具体而言,这是在页面发送给用户之前由网络服务器执行的。
- 所有JavaScript都在PHP之后执行。这是由用户的浏览器执行的。
在第 1 步之后页面将如下所示:
<script>
window.addEventListener("resize", function (e) {
var width = document.body.clientWidth;
console.log(document.body.clientWidth);
if (width <= 768) {
console.log("if: " + true);
} else {
console.log("else: " + false);
}
console.log("final: " + false);
console.log("isset: " + 1);
});
</script>
这意味着当第 2 步运行时,最后两行已经设置好。