Vinzenz Mai: if(!empty( ?? funktioniert nicht oder nur Denkfehler?

Beitrag lesen

Hallo

warum greift die Prüfung mit !empty() nicht?

wieso, sie greift doch.

In einem Fehlerfall war die Spalte aber leer.

Wieso ist dies ein Fehlerfall? Begründung?

Trotzdem erfolgt die Echo Ausgabe und die Zuweisung mit ..[1] die dann natürlich einen "Notice: Undefined offset: 1 " Fehler bringt.

ja, klar. Zähle bitte von 0 an :-)

$test = explode("#@#",$saved["MyColumn"]);
var_dump($coverpaperfront);
echo "<br>";
if(!empty($coverpaperfront)){
print_r($coverpaperfront);
echo "<br>die länge ist " . count($coverpaperfront);
$coverpaperfront = $coverpaperfront[1];
}

Ausgabe:
array(1) { [0]=>  string(0) "" }

Das Array ist nicht leer, es enthält ein Element. Dieses Element hat den numerischen Index 0.

Array ( [0] => )
die länge ist 1
Notice: Undefined offset: 1 in

Wieso greift das mit dem "empty()" nicht?

Es greift doch. Das Array ist nicht leer :-)
Das erste Arrayelement ist leer,

  
  // $leer hat nach dieser Zuweisung den Wert true  
  $leer = empty(!coverpaperfront[0]);  

prüfe dieses.

Noch ein Hinweis:
Code ohne vernünftige Kommentare ist miserabler Code.
Code, der in einem Forum präsentiert wird, sollte eher mehr Kommentare aufweisen als Quellcode. Ja, eine nette Form spricht auch für sich und macht Code lesbarer.

Du weißt im Moment, was Du vorhast. Der potentielle Helfer weiß es nicht.
Jemand, der Hilfe haben möchte, sollte dem Helfer keine Hindernisse in den Weg stellen, sondern nach Möglichkeit Hindernisse entfernen. Dabei kann es sein, dass man durch das Wegräumen der Hindernisse bereits die Lösung findet, noch bevor man seine Frage abgeschickt hat.

Freundliche Grüße

Vinzenz