php Funktion prüfen Rückkehr
Ich habe eine Funktion, die die Rückkehr einer Schleife, jetzt will ich überprüfen, ob diese Funktion liefert null oder leer
Das ist die Funktion:
function getCopy($pname){
function listCopy($block) {
foreach ($block as $b) {
echo '<div class="copy">'.$b->getBlock().'</div>'. "\n";
}
}
$filter=array(
new DFC(classContent::FIELD_PNAME, $pname, DFC::CONTAINS),
new DFC(classContent::FIELD_TYPE, 'copy', DFC::CONTAINS),
);
$block=classContent::findByFilter(conn(), $filter);
return listCopy($block);
}
Das ist meine Logik:
if( isset (getCopy($pname)) ){
echo "<label for='copy'>Copy</label><br>"
."<textarea name='copy' id='copy' rows='10' cols='60'>".getCopy($pname)
."</textarea><br>";
}
Den isset
funktioniert nicht und weder if(getCopy($pname) != '')
tut.
Jede Idee, wie dies zu tun?
Vielen Dank im Voraus
Mauro
- Art der dumme zu rufen getCopy() zweimal, nicht wahr? Wenn getCopy() gibt einen Wert für $pname, dann nennen Sie es noch einmal mit dem gleichen argument anzeigen der zurückgegebenen Wert, den Sie bereits einmal berechnet
Du musst angemeldet sein, um einen Kommentar abzugeben.
Kann man nicht "return eine Schleife von einer Funktion. Sie können nur Werte zurückgeben. Die
listCopy
Funktion nichts zurück, es ist nur Ausgänge. DahergetCopy
nichts zurückgibt, entweder. Die Definition einer Funktion innerhalb einer Funktion ist in der Regel eine schlechte Praxis als gut, werden Sie nicht in der Lage zu nennengetCopy
zweimal in Ihrem Fall.Ich bin mir nicht wirklich sicher, was Sie zu tun versuchen, aber Sie brauchen, um zu überdenken Sie Ihre Herangehensweise.
verwenden leer oder is_null oder eine Kombination von beiden.
Oder Sie könnten einfach negieren, die überprüfung zu tun
if( !getCopy($pname) ) ){ ... }
aber ich würde mit keinem der beiden oben genannten Funktionen.Edit: wie deceze angemerkt, man kann nicht direkt bewerten den return-Wert mit
empty
haben, müssen Sie es zu einem assign var erste, und dann übergeben, die var zuempty()
empty
oderisset
zu überprüfen-Funktion Werte zurückgeben.empty
beim Check-potenziell nicht vorhandene Variablen. Für die Funktion Werte zurückgebenif (getCopy())
oderif (!getCopy())
ist auch gut so.empty()
wird nun unterstützt in PHP. Sie nicht brauchen, um es einer Variablen zuweisen zuerst in den Versionen 5.5+. Zum Beispiel:if(empty(getCopy($pname))) { . . . }
gut funktionieren wird.Die php-Funktion
isset()
wird verwendet, um zu bestimmen, ob eine variable gesetzt und nicht NULL ist. Es ist also normal, dass es nicht funktioniert.empty()
ist, was Sie suchen, aber bare in mind diese zwei Punkte:return
nichts. Soempty()
wird immer zu true ausgewertet werden.empty
zu überprüfen-Funktion Werte zurückgeben.!
.empty
ist einfach!isset($foo) || !$foo
, und Sie brauchen nicht den ersten Teil hier, denn die Funktion gibt es sicherlich.