我正在努力寻找正确执行这种逻辑的方法。
If (this thing is null)
Skip it
Else
Don't skip it
我尝试使用if / else和while循环,但每个都会使程序崩溃。我测试这样的东西:
(inside a foreach)
if($value->getThing() == NULL) {
//HOW TO SKIP???
//I try to 'set' this thing
$value->setThing(0); //BUT IT Doesn't work because it's an associated object...
} else {
$value->getThing();
}
尝试了这个:
(inside foreach)
while ($value->getThing() != NULL) {
$value->getThing();
//Do Calculation...
}
当它到达null的东西时,它们都会崩溃。我知道为什么,但我无法弄清楚如何跳过空的东西。
如果你不能告诉我,我是新手。但我在学习。
编辑:数据库中的东西为空。
答案 0 :(得分:2)
试试这段代码:
foreach($values as $value){
if(!is_null($value->getThing())){
#do calculation
}
}
答案 1 :(得分:2)
对于"跳过"您可以使用的条目"继续"。
foreach($array as $key => $value){
if($value['foo'] == null){
continue;
}
//Do the calculation
}
..或者也许:
foreach($array as $key => $value){
if(is_null($value['foo'])){
//Null value treatment
continue;
}
//Do the calculation
}
答案 2 :(得分:1)
您实际需要的是我想称之为NOT IS
运营商。
foreach ($things as $thing) {
if (!is_null($thing)) {
// Do the stuff that you wanna do
}
}
上述虚拟代码教导您不必使用else
。它还显示is_null()
函数,用于检查某些内容是否实际为NULL
。此外,它还显示!
运算符,也可以转换为NOT IS
。
!is_null()
实际上说的是:"如果此函数,变量等的返回值不是NULL
..."
答案 3 :(得分:0)
试试这个:
$names = file('name.txt');
// To check the number of lines
echo count($names).'<br>';
foreach($names as $name) {
echo $name.'<br>';
}