Division durch 0 zu befürchten?
Tom
- php
Hello,
ich habe für das Auslesen von Bilder-Pfaden aus einem Verzeichnis die Funktion, die die Zeile
$_dir['imgsrc'][$key] = "src="$directory"."/"."$filename" ".$_picmeta[3];1
---------
enthält.
Könnte ich dafür auch bedenkenlos
$_dir['imgsrc'][$key] = "src="$directory/$filename" ".$_picmeta[3];1
schreiben? Oder könnte es passieren, dass wenn ich ein Verzeichnis namens "1" und ein Bild namnes "0" habe, plötzlich eine Division (durch 0) stattfindet?
Ich bin mir nicht sicher, ob die Typerkennung hier wirklich sicher greift.
Harzliche Grüße aus http://www.annerschbarrich.de
Tom
schreiben? Oder könnte es passieren, dass wenn ich ein Verzeichnis namens "1" und ein Bild namnes "0" habe, plötzlich eine Division (durch 0) stattfindet?
_Wieso_ probierst Du es nicht einfach aus?
Hello,
schreiben? Oder könnte es passieren, dass wenn ich ein Verzeichnis namens "1" und ein Bild namnes "0" habe, plötzlich eine Division (durch 0) stattfindet?
_Wieso_ probierst Du es nicht einfach aus?
Wer sagt Dir, dass ich da nicht schon getan habe?
Das ist hier aber nicht die sichere Methode!
Es gibt die verschiedensten PHP-Versionen mit den verschiedensten kleinen Macken und ich habe nur zwei zur Verfügung (4.3.2 und 4.3.8)
Das ist ein Fehler, der ggf. vorherzusehen ist, genauso, wie man das Scannen des Verzeichnisses entsprechend durchführen muss:
while (false !== ($filename = readdir($dh)))
Wenn eine Datei mit dem NAMEN "0" auftaucht, wäre die While-Bedingung bei
while ($filename = readdir($dh))
auch nicht erfüllt.
Harzliche Grüße aus http://www.annerschbarrich.de
Tom
_Wieso_ probierst Du es nicht einfach aus?
Wer sagt Dir, dass ich da nicht schon getan habe?
Deine Frage *g*
Ansonsten ist auch die Antwort hier nicht sicher. Also: immer schön alle Ausnahmen behandeln.
Hi,
Ich bin mir nicht sicher, ob die Typerkennung hier wirklich sicher greift.
Dann lass sie doch manuell per Typecast greifen, folgende Zeile sollte als Zahl behandelt werden (hoffe ich zumindest *g*):
$a = (int)"5";
E7
$_dir['imgsrc'][$key] = "src="$directory"."/"."$filename" ".$_picmeta[3];1
---------
Könnte ich dafür auch bedenkenlos$_dir['imgsrc'][$key] = "src="$directory/$filename" ".$_picmeta[3];1
schreiben? Oder könnte es passieren, dass wenn ich ein Verzeichnis namens "1" und ein Bild namnes "0" habe, plötzlich eine Division (durch 0) stattfindet?
mal abgesehen von der lesbarkeit, könnte ein anderer maintainer des programms möglicherweise glauben, hier handele es sich um ein rechenergebnis und nicht um eine stringverkettung. daher ergibt sich auf grund der besseren lesbarkeit die 1. variante.
aber was soll das ganze ?
falls da jemand wieder den php-interpreter 'optimieren' möchte, soll dieser erst einmal die gänsebeinchen durch einfache hochkomma ersetzen, damit sich der interpreter nicht für den inhalt interessiert.
bei mir sehe das ganze so aus:
$_dir['imgsrc'][$key] = 'src="'.$directory.'/'.$filename.'" '.$_picmeta[3];
was meines erachtens wesentlich lesbare ist, und den interpreter nicht so belastet.
Hi,
Könnte ich dafür auch bedenkenlos
$_dir['imgsrc'][$key] = "src="$directory/$filename" ".$_picmeta[3];1
schreiben? Oder könnte es passieren, dass wenn ich ein Verzeichnis namens "1" und ein Bild namnes "0" habe, plötzlich eine Division (durch 0) stattfindet?
Was ist das nächstliegende in so einem Fall?
Ein Blick in die Sprach-Beschreibung.
http://www.php.net/manual/en/language.types.string.php
Ohne {} werden innerhalb von "" Variablen ausgewertet - keine Expressions, also auch nicht der /, weil er an dieser Stelle kein Operator ist.
cu,
Andreas
Hello,
http://www.php.net/manual/en/language.types.string.php
Ohne {} werden innerhalb von "" Variablen ausgewertet - keine Expressions, also auch nicht der /, weil er an dieser Stelle kein Operator ist.
Na, das war mal wieder frei nach dem Motto "blamiere dich täglich"...
Hätte ich doch glatt selber drauf kommen können, welche Regel hier greift.
Danke für die Nachhilfe.
Harzliche Grüße aus http://www.annerschbarrich.de
Tom