我正在测试Heredoc和||功能php“||”赋值逻辑相比于Javascript
function test()
{
$obj = [(object)['col1'=>'val1'],
(object)['col2'=>'val2'],
(object)['col3'=>'val3']];
$output = '';
$mystring = <<<EOT
a non empty string
EOT;
foreach($obj as $prop)
{
foreach($prop as $i)
{
$output .= <<<EOT
<div style='background-color:lightblue'>
\$head : {gettype($i)}
</div>
EOT;
}
}
$out = $output || $mystring || 'couldn\'t find something valuable';
echo $out;
}
test();
我得到的
输出代表一个布尔真。 我有它输出的$通过将逻辑括号在一个点myString的内容,例如
echo ($output || $mystring);
,并用于输出:
一个非空字符串
它停止工作后,我不知道什么样的变化打破了它。
在javascript中:
function test()
{
var obj = [{'col1':'val1'},
{'col2':'val2'},
{'col3':'val3'}];
var output = '';
var mystring ="a non empty string";
for(var prop in obj)
{
for(var i in prop)
{
output +=
"<div style='background-color:lightblue'>" +
i + " : " + typeof prop[i] +
"</div>";
}
}
out = output || mystring || 'couldn\'t find something valuable';
document.write(out);
console.log("outputting \n\t" + out);
}
test();
距离PHP的逻辑但方面略有不同||在分配工作中按预期工作。我得到
0:字符串
0:字符串
0:字符串
上面的代码。如果注释掉内的循环,像这样
for(var prop in obj)
{
/*for(var i in prop)
{
output +=
"<div style='background-color:lightblue'>" +
i + " : " + typeof prop[i] +
"</div>";
}*/
}
我得到“MyString的”,这是
一个非空字符串的内容
,如果我再改的MyString到像这样的空字符串
mystring = ""; //"a non empty string";
我得到
找不到有价值的东西
如何PHP的 “||”在分配工作中? 有人可以解释它吗?
请修复您的代码格式。函数test(){'和'} test()'是未格式化的。 – Gogol
@ noc2spamツ谢谢。在我阅读您的评论之前修复它.XD – Sarfaraaz