简体   繁体   English

分配给布尔值的变量不会回显到 PHP 中的网页

[英]variable assigned to a boolean won't echo to the webpage in PHP

I have some PHP code that is supposed to check if a certain value in the $_GET global is assigned.我有一些 PHP 代码应该检查 $_GET 全局中是否分配了某个值。 If it isn't it automatically puts a predetermined value.如果不是,它会自动放置一个预定值。 If there is, it assigns the variable with a default value:如果有,它会为变量分配一个默认值:

<?php
if(!isset($spaceObjects)){
  $spaceObjects = 0;
} else{
  $spaceObjects = $_GET['spaceObjects'] == true;
}
if(!isset($numOfStars)){
  $numOfStars = 100;
} else{
  $numOfStars = intal($_GET['numOfStars']);
}
if(!isset($starTwinkles)){
  $starTwinkles = 0;
} else{
  $starTwinkles = ($_GET ['starTwinkles'] == true);
}
if(!isset($numOfMeteorsMax)){
  $numOfMeteorsMax = 8;
} else{
  $numOfMeteorsMax = intval($_GET['numOfMeteorsMax']);
}
if(!isset($twinklePausing)){
  $twinklePausing = 1;
} else{
  $twinklePausing = ($_GET['twinklePausing'] == true);
}
if(!isset($nightCycle)){
  $nightCycle = 0;
} else{
  $nightCycle = ($_GET['nightCycle'] == true);
}
if(!isset($music)){
  $music = 1;
} else{
  $music = ($_GET['musicEnabled'] == true);
}
if(!isset($nightSounds)){
  $nightSounds = 0;
} else{
  $nightSounds = ($_GET['nightSounds'] == true);
}
if(!isset($nightSoundsVol)){
  $nightSoundsVol = 0.1;
} else{
  $nightSoundsVol = intval($GET['nightSoundsVol']);
}
?>
let controlVariables = {
  spaceObjects: <?php echo $spaceObjects;?>,
  numOfStars: <?php echo $numOfStars;?>,
  starTwinkles: <?php echo $starTwinkles;?>,
  numOfMeteorsMax: <?php echo $numOfMeteorsMax;?>,
  disableTwinklingWhileSpaceObjectGenerated: <?php echo $twinklePausing;?>,
  nightCycle: <?php echo $nightCycle;?>,
  music: <?php echo $music;?>,
  nightSounds: <?php echo $nightSounds;?>,
  nightSoundsVol: <?php echo $nightSoundsVol;?>
};

What's weird is that PHP is giving me nothing in some of the echo statements, causing JS to throw a syntax error.奇怪的是,PHP 在某些echo语句中没有给我任何内容,导致 JS 抛出语法错误。

Why instead of printing true or false PHP is giving me nothing for some fields?为什么 PHP 不打印truefalse而对某些字段却一无所获?

Try to replace echo with condition to output specific text instead of variable itself.尝试用条件替换 echo 以输出特定文本而不是变量本身。 Echoed boolean outputs 1 when true, nothing when variable is false.当为 true 时,echoed boolean 输出 1,当变量为 false 时什么都不输出。 eg:例如:

let controlVariables = {
    spaceObjects: <?php echo ($spaceObjects)? 'true' : 'false';?>,
...
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM