Webプログラムをしていると、PHPで吐き出した値に応じてJavaScriptの処理を切り替えたいときがあります。
文字列や数値であれば
<?php $hoge = 'test'; ?>
<script>
var huga = '<?php echo $hoge; ?>';
</script>
のようにすれば、PHPに通すと
<script>
var huga = 'test';
</script>
となり、javascriptの変数にPHPから値を渡すことができます。
ところが、PHP側でbool型で持っている値を同様のようにやろうとすると
<?php $hoge = true; ?>
<script>
var huga = <?php echo $hoge; ?>;
</script>
<script>
var huga = ;
</script>
となってしまい、JavaScriptへ正常に値を渡すことができません。
PHPで保持しているbool型の値をJavaScriptに渡す場合は、次のようにするとうまく行きます。
<?php $hoge = true; ?>
<script>
var huga = <?php var_export( $hoge, true ); ?>;
</script>
上記のように、bool型の値が入った変数を、
var_export()
という関数を使って吐き出します。すると、
<script>
var huga = true;
</script>
このようになり、無事JavaScriptにもbool型の値を渡すことができます。
お困りの方はためしてみてください。