【问题标题】:variable assigned to a boolean won't echo to the webpage in PHP分配给布尔值的变量不会回显到 PHP 中的网页
【发布时间】:2023-03-17 08:55:01
【问题描述】:

我有一些 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 而不是为某些字段提供任何信息?

【问题讨论】:

    标签: javascript php get boolean


    【解决方案1】:

    尝试用条件替换 echo 以输出特定文本而不是变量本身。 回显布尔值在为真时输出 1,当变量为假时不输出任何内容。 例如:

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

    【讨论】:

    • 这确实有效。由于语法的原因,我不得不对其进行一些更改,否则谢谢。
    • 啊,我明白了。 echo 不能在三元运算符中使用,请参阅php.net/manual/en/language.expressions.php#11883 已更改 sn-p 在答案中。
    猜你喜欢
    • 1970-01-01
    • 2020-01-17
    • 1970-01-01
    • 2018-03-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多