2016-04-28 11 views
2

überspringe Ich bin in der Suche nach einem Weg, um diese Logik richtig zu tun.Wie man Zeilen in PHP

Ich versuchte mit if/else und while-Schleifen, aber jeder wird das Programm abstürzen. Ich teste etwas wie folgt aus:

(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(); 
} 

Und versucht, dies:

(inside foreach) 
while ($value->getThing() != NULL) { 
    $value->getThing(); 
    //Do Calculation... 
} 

Beide nur abstürzen, wenn es kommt zu der Sache null das ist. Ich weiß warum, aber ich kann nicht herausfinden, wie man das Null-Ding überspringt.

und wenn Sie nicht sagen können, bin ich ein Neuling. Aber ich lerne.

EDIT: Das Ding ist null in der db.

+0

Apostrophe in NULL versuchen, wie diese - wenn (wert- $> getThing() == 'NULL') –

Antwort

2

Versuchen Sie diesen Code:

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

Sie zuerst reagiert, damit ich Ihre Antwort akzeptieren. Ich habe immer noch Fehler, die aber nicht mehr damit zusammenhängen. Danke für Ihre Hilfe! – user6104636

2

Für "Überspringen" ein Eintrag, den Sie verwenden können, "weiter".

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

..oder vielleicht:

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

Was Sie suchen eigentlich für die NOT IS Operator, wie ich es nennen möchte.

foreach ($things as $thing) { 
    if (!is_null($thing)) { 
     // Do the stuff that you wanna do 
    } 
} 

Die obige Blindkode lehrt, dass Sie nicht ein else zu verwenden. Es zeigt auch die is_null()-Funktion, die überprüft, ob etwas tatsächlich NULL ist. Außerdem zeigt es den Operator !, der auch in NOT IS übersetzt werden kann.

Was !is_null() tatsächlich sagt, ist: „Wenn der Rückgabewert dieser Funktion variabel und so weiter nicht NULL ist ...“

Viel Glück.

+0

Das sehe ich jetzt, danke für die Erkundung – user6104636

0

Try this:

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

// To check the number of lines 

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

foreach($names as $name) { 
    echo $name.'<br>'; 
} 
Verwandte Themen