2016-04-28 2 views
2

Я изо всех сил пытаюсь найти способ правильно выполнить эту логику.Как пропустить строки в php

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... 
} 

И только крах, когда он получает вещь тот нуль. Я знаю почему, но я не могу понять, как пропустить нулевую вещь.

, и если вы не можете сказать, я новичок. Но я учусь.

EDIT: Вещь имеет значение null в db.

+0

попробовать одиночные кавычки в NULL, как это - если ($ ценностно> getThing() == 'NULL') –

ответ

2

Попробуйте этот код:

foreach($values as $value){ 
    if(!is_null($value->getThing())){ 
    #do calculation 
    } 
} 
+1

Вы ответили первым, поэтому я принимаю ваш ответ. У меня все еще есть ошибки, но не совсем связанные с этим. Спасибо за вашу помощь! – user6104636

2

Для "пропуск" запись, которую вы можете использовать "продолжить".

foreach($array as $key => $value){ 
    if($value['foo'] == null){ 
     continue; 
    } 
    //Do the calculation 
} 

..or возможно:

foreach($array as $key => $value){ 
    if(is_null($value['foo'])){ 
     //Null value treatment 
     continue; 
    } 
    //Do the calculation 
} 
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 ...»

удачи.

+0

Я вижу это сейчас, спасибо за объяснение – user6104636

0

Попробуйте это:

$names = file('name.txt'); 

// To check the number of lines 

echo count($names).'<br>'; 

foreach($names as $name) { 
    echo $name.'<br>'; 
} 
Смежные вопросы