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



我有一些PHP代码,应该检查$_GET全局中是否分配了某个值。如果不是,它会自动设置一个预定值。如果有,它会为变量分配一个默认值:

<?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;?>
};

奇怪的是,PHP在一些echo语句中没有给我任何东西,导致JS抛出语法错误。

为什么PHP没有打印truefalse,却对某些字段没有任何帮助?

尝试将echo替换为condition以输出特定文本,而不是变量本身。当变量为true时,返回布尔值输出1,当变量为false时,不输出任何值。例如:

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