javascript不接受来自php的布尔值或null

javascript不接受来自php的布尔值或null,javascript,php,Javascript,Php,我正在努力学习javascript。我有以下代码: <?php $a = true; $b = false; ?> <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title></title> </head> <body> <script>

我正在努力学习javascript。我有以下代码:

<?php
    $a = true;
    $b = false;
?>


<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title></title>
</head>
<body>
    <script>
        window.variable = {
            a: <?php $a ? true : false ?>,
            b: <?php $b ? 1 : null ?>
        }

        console.log(variable);
    </script>
</body>
</html>
我哪里做错了

a: <?php $a ? true : false ?>,
b: <?php $b ? 1 : null ?>
但是,对于一种更具弹性的方法,由于您要在JavaScript中使用输出,请改用
json_encode

a: <?php echo json_encode($a ? true : false) ?>,
b: <?php echo json_encode($b ? 1 : null) ?>
a:,
b:
或者,更好的是,让PHP输出整个JS对象:

window.variable = <?php echo json_encode([
    'a' => $a ? true : false,
    'b' => $b ? 1 : null,
]); ?>;
window.variable=;

记住你在构建文本;使用“echo”以字符串形式输出正确的值

<?php
  $a = true;
  $b = false;
?>


<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title></title>
</head>
<body>
    <script>
        window.variable = {
            a: <?php echo $a ? "true" : "false" ?>,
            b: <?php echo $b ? "1" : "null" ?>
        }

        console.log(variable);
    </script>
</body>
</html>

window.variable={
甲:,,
b:
}
console.log(变量);

您必须回显该值。您需要对PHP变量进行json编码,例如
a:,
标签仅用于执行PHP。它不会向文档输出任何内容。你需要使用
window.variable = <?php echo json_encode([
    'a' => $a ? true : false,
    'b' => $b ? 1 : null,
]); ?>;
<?php
  $a = true;
  $b = false;
?>


<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title></title>
</head>
<body>
    <script>
        window.variable = {
            a: <?php echo $a ? "true" : "false" ?>,
            b: <?php echo $b ? "1" : "null" ?>
        }

        console.log(variable);
    </script>
</body>
</html>