以下代码不打印任何内容:
$bool_val = (bool)false;
echo $bool_val;
Run Code Online (Sandbox Code Playgroud)
但是下面的代码打印出来1:
$bool_val = (bool)true;
echo $bool_val;
Run Code Online (Sandbox Code Playgroud)
有没有更好的方式来打印0或false时$bool_val是false不是增加一个if声明?
PHP中的函数调用很昂贵.这是一个测试它的小基准:
<?php
const RUNS = 1000000;
// create test string
$string = str_repeat('a', 1000);
$maxChars = 500;
// with function call
$start = microtime(true);
for ($i = 0; $i < RUNS; ++$i) {
strlen($string) <= $maxChars;
}
echo 'with function call: ', microtime(true) - $start, "\n";
// without function call
$start = microtime(true);
for ($i = 0; $i < RUNS; ++$i) {
!isset($string[$maxChars]);
}
echo 'without function call: ', microtime(true) - $start;
Run Code Online (Sandbox Code Playgroud)
这使用函数first(strlen)测试功能相同的代码,然后不使用函数(isset不是函数).
我得到以下输出:
with function …Run Code Online (Sandbox Code Playgroud) 可能重复:
将变量从php传输到js
这似乎微不足道.我将PHP变量的值设置为false.然后经过一些处理后,我在脚本中输出一些JavaScript变量.这是代码
$a = true;
$b = false;
echo '<script type="text/javascript">
var a = '.$a.';
var b = '.$b.';
</script>';
Run Code Online (Sandbox Code Playgroud)
当脚本完成时,我得到这个输出:
var a = 1;
var b = ;
Run Code Online (Sandbox Code Playgroud)
所以我在JavaScript中遇到语法错误.现在的问题是,如何在JavaScript中将这些值作为真正的布尔值?
预期产量:
var a = true;
var b = false;
Run Code Online (Sandbox Code Playgroud)
我不希望字符串像'true'或'false'...或1和0,但布尔true和false只.有关这方面的任何帮助,还有一些解释为什么PHP表现如此?