Hi!
if ($data==false) {...
if ($data==true) [...]
if (empty($data) == false) {...
So in etwa oder habe ich es noch immer nicht verstanden? :(
Doch, sieht nach verstanden aus. Nur dass man statt der obigen drei einfacher
if (!$data)
if ($data)
if (!empty($data))
schreiben kann. Die obigen sind formuliert à la "Ist es wahr, dass $data wahr ist?" statt "Ist $data wahr?"
[Dein Code]
Wenn du nun noch die anderen Hinweise beachtest (for statt while, 5mal statt 4mal die Schleife durchlaufen, und $data kann man ganz wegkürzen), kommt gekürzt das raus:
for ($count = 0; $count < 5; $count++) {
sleep(1);
if (GetStudioArray(...))
break;
?> <meta...> <?php
}
Allerdings stellt sich mir die Frage, willst du wirklich bis zu 5 Meta-Refreshs ausgeben? Ich denke eher, dass du erst nach 5 erfolglosen Versuchen refreshen willst. Dann braucht es doch wieder eine Hilfsvariable.
for ($count = 0; $count < 5; $count++) {
sleep(1);
if ($data = GetStudioArray(...))
break;
}
if ($data) {
?> <meta...> <?php
}
Die Besonderheit hier ist, dass
if ($data = GetStudioArray(...)) {...}
kein Vergleich (==) sondern eine Zuweisung (=) ist. Das Ergebnis einer Zuweisung ist der Wert der Zuweisung. Also wenn GetStudioArray() ein Array liefert, steht einerseits dieses Array in $data und andererseits bekommt das if dieses Array zu sehen. Mit dem false funktioniert das genauso. Warum mach ich das so? Es wird sowohl das Ergebnis von GetStudioArray() benötigt, um nach der Schleife entscheiden zu können, ob das Meta-Element ausgegeben werden soll oder nicht. Außerdem muss entschieden werden, ob die Schleife abgebrochen werden soll.
Wenn dir das zu schwierig zu verstehen ist, nimm diese Variante:
$data = GetStudioArray(...);
if ($data) {...}
Die hat genau dieselbe Wirkung, nur eben in zwei Schritten.
Lo!