php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2004

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 01.11.2004, 22:10  
Waq
Erfahrener Benutzer
 
Registriert seit: 15.08.2004
Beiträge: 2.473
Waq
Standard

Zitat:
Zitat von meikel
Zitat:
Zitat von Waq
Zitat:
Zitat von meikel
1. glob() liefert so oder so ein Array zurück.
Dem scheint nicht so zu sein.
Lern lesen ( http://test.php-help.info/glob-1/ ):
Um ehrlich zu sein, ist es mir auch relativ egal, ob es bei Dir immer ein Array zurückliefert, bei anderen Leuten scheint das anders zu sein, unter welchen Umständen auch immer.
Dass Manual behauptet, dass glob() false zurückliefern kann. Es gibt zwei unabhängige Augenzeugenberichte, die das bestätigen. Ob die beiden Mist gebaut haben und das Manual hier falsch ist, oder ob es hier einen Systemunterschied gibt, wie z.B. glibc oder nicht glibc (glob ist ein wrapper auf eine libc-Funktion), weis ich nicht, und ich habe im Moment weder Lust zum spekulieren noch zum nachforschen. Da müsste ich ja mal wieder unter Windows PHP installieren...


Zitat:
Zitat von meikel
Wir gehen schlicht und einfach mal von einem Linuxsystem aus
Man sollte seine Vorstellungen der Realität anpassen und nicht die Realtität für falsch erklären, weil sie nicht zu den Vorstellungen passt.

Zitat:
Zitat von meikel
Die Antwort (mehr oder weniger volles bzw. leeres Array) erscheint schlüssig.
PHP ist aber nicht immer schlüssig.

Zitat:
Zitat von meikel
Die Ergebnisauswertung muß das nur berücksichtigen.
Ich bleibe dabei, die Ergebnisauswertung sollte prüfen, ob false zurückgeliefert wurde. Zur Not, damit es auch unter Windows läuft. Oder damit es noch läuft, falls einem Core-Entwickler auffällt, dass kein false zurückgeliefert wird, und er das für PHP 5.1 das Verhalten an das Manual anpasst. Oder weil es einfacher ist, als rauszufinden, ob glob() wirklich immer arrays zurückliefert. Denn mit Sicherheit kann ich das nicht sagen.

Zitat:
Zitat von meikel
da ein leeres Array !== oder != false ist
Ein leeres Array evaluiert zu false, nicht zu true.
__________________
mod = master of disaster
Waq ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 01.11.2004, 22:45  
Gast
 
Beiträge: n/a
Standard

Zitat:
Zitat von Waq
Um ehrlich zu sein, ist es mir auch relativ egal, ob es bei Dir immer ein Array zurückliefert, bei anderen Leuten scheint das anders zu sein, unter welchen Umständen auch immer.
Mir reicht, daß die aktuellen Versionen von PHP4 (4.3.9) und PHP5 (5.0.2) meine Feststellung erhärten.

Was um alles in der Welt ist daran schlimm, erst den Rückgabewert zu speichern (damit man die Funktion nicht 2* ausführen muß), um ihn danach auszuwerten? Und wenn man dabei feststellt, daß das automatische Typecasting bei glob() Mist baut, aber count($arr) richtig liegt, dann ist die Diskussion darüber müßig.

Entweder man nimmt das, was funktioniert, oder man wartet auf eine PHP Version, die das so ausführt, wie es sich der jeweilige Programmierer erhofft.
 
Alt 01.11.2004, 22:53  
Waq
Erfahrener Benutzer
 
Registriert seit: 15.08.2004
Beiträge: 2.473
Waq
Standard

Zitat:
Zitat von meikel
Was um alles in der Welt ist daran schlimm, erst den Rückgabewert zu speichern (damit man die Funktion nicht 2* ausführen muß), um ihn danach auszuwerten?
Nichts.
Aber "if(count($files2)>0)" halte ich für eine ungeeignete Abfrage, da count(false)==1 ist.

Zitat:
Zitat von meikel
Und wenn man dabei feststellt, daß das automatische Typecasting bei glob() Mist baut, aber count($arr) richtig liegt, dann ist die Diskussion darüber müßig.
Zur Erinnerung: Die Diskussion entstand daraus, dass bei Roda count(glob()) fälschlicherweise eine 1 geliefert hat, obwohl keine Datei gefunden wurde, scheinbar weil glob() false geliefert hat.
__________________
mod = master of disaster
Waq ist offline  
Alt 01.11.2004, 23:38  
Gast
 
Beiträge: n/a
Standard

Zitat:
Zitat von Waq
Aber "if(count($files2)>0)" halte ich für eine ungeeignete Abfrage, da count(false)==1 ist.[1]

Zur Erinnerung: Die Diskussion entstand daraus, dass bei Roda count(glob()) fälschlicherweise eine 1 geliefert hat, obwohl keine Datei gefunden wurde, scheinbar weil glob() false geliefert hat.
<ggg>
Das würde ich mir noch mal überlegen...

Ich habe mein Testbeispiel noch mal so verändert, daß mit print_r und var_dump der Rückgabewert angezeigt wird.

Fazit: es ist ein ein Array - entweder leer oder es ist was drin.

Demzufolge lautet die einzig sinnvolle Abfrage:
if (count($ergebnis) == 0) # nix da
if (count($ergebnis) > 0) # wenigstens ein File gefunden.
 
Alt 02.11.2004, 12:55  
Benutzer
 
Registriert seit: 31.08.2004
Beiträge: 61
RoDa
Standard

Herzlichen Dank, ihr beiden, für die ausführliche Diskussion. Ich geb zu: Ich hab nicht alles gecheckt. Macht aber nichts. Ich hol mir folgendes raus:
  • count() mit glob() liefert mir nicht das Gewünschte, also bleib ich bei meiner andern Lösung (siehe oben)
  • Es kann sein, dass Linux und Windows nicht dasselbe liefern. Ich bin aber aus verschiedenen Gründen drauf angewiesen, meine Scripts zu Hause auf Windows zu testen, und ich will natürlich, dass meine Scripts zu Hause und auf dem Server laufen. Windows ist eben wirklich oft eine Realität, der man sich nicht verschliessen kann, auch wenn mich oft drüber ärgere.
  • Ich behalte glob() im Auge und schaue, was die Funktion bei einem Update von PHP liefert.

Gruss und Dank
Roda
RoDa ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Aufklappmenu geht nur mit Platzhalter? Stemmi HTML, Usability und Barrierefreiheit 4 08.11.2007 17:34
gibt es einen platzhalter? notyyy Off-Topic Diskussionen 5 02.11.2007 15:02
Platzhalter "*" möglich? adlerr2000 HTML, Usability und Barrierefreiheit 2 23.05.2006 21:30
datumsabfrage platzhalter Datenbanken 2 12.02.2006 10:43
Platzhalter im Template Zero.exe PHP Tipps 2005-2 3 30.08.2005 12:09
Wie mache ich Platzhalter? horvath-media PHP Tipps 2005-2 5 17.08.2005 23:03
Platzhalter im WHERE Feld JonathanArcher Datenbanken 12 12.08.2005 22:45
Platzhalter bei IF Abfragen PHP Tipps 2005-2 2 03.07.2005 15:19
Platzhalter gesucht PHP Tipps 2005 5 19.03.2005 16:06
Platzhalter in Variablen PHP Tipps 2005 3 16.02.2005 16:56
Platzhalter in der Variable? PHP Tipps 2005 16 10.02.2005 20:39
platzhalter in query ersetzen flyingeagle Datenbanken 4 12.01.2005 10:40
replace-Funktion für Platzhalter/ php-Code in html PHP Tipps 2004-2 1 11.12.2004 19:40
Platzhalter juhuwoorps Datenbanken 4 07.09.2004 11:37
Daten in Platzhalter laden PHP Tipps 2004 0 28.06.2004 12:57

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
file_exist platzhalter php, file_exists mit .*, glob file_exists, glibc linux file_exists, file_exists gibt true zurück obwohl es falsch ist, glob false

Alle Zeitangaben in WEZ +2. Es ist jetzt 02:03 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.