Was ist hier unterschiedlich?

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Was ist hier unterschiedlich?

    Hallo,

    1.

    Ich erhalte bei dem ersten beispiel hier ein fehler im script, wie der lautete weiß ich jetzt garnicht mehr.

    Aber ich wollte fragen ob die 2 Beispiele nicht identisch sind! Ich verstehe beide zeilen so: "Wenn Inhalt vorhanden ist dann..."
    PHP-Code:
    if(!empty($arrCountry[$k])) {...}
    if(
    $arrCountry[$k]<>"") {...} 
    Was ich dazu noch anmerken möchte: empty führt kein trim durch, dh. wenn meine $var=" "; dann ist empty=false
    Ich habe versucht eine zeile so aufzubauen:
    PHP-Code:
    if(empty(trim($var))) {...}  # das mag PHP aber nicht 
    Ich prüfe gelegentlich einfabefelder, ob da was eingegeben wurde...und wen der besucher da einfach paar leerzeichen reinhaut, dann wirkt mein empty nicht mehr.

    -------------------------------------------------------------------------

    2.

    Für die messung der zeit habe ich folgende 2 beispiele gefunden:
    PHP-Code:
    $sstart=array_sum(explode(' ',microtime()));
    $sstart=strtok(microtime(),' ')+strtok(' '); 
    Ich habe beide gleichzeitig getestet und sie liefern auch exact das gleiche ergebnis bei jedem reload.
    Ist hier zw diesen 2 varianten kein weiterer unterschied - bis das sie optisch anders aussehen?
    ACHTUNG: RamonaS zeigte ein beschämendes Verhalten in der Vergangenheit

  • #2
    1.

    Hinweis: empty() überprüft nur Variablen, alles andere führt zu einem Parse-Error. Anders gesagt wird folgendes nicht funktionieren: empty(trim($name)).
    PHP: empty - Manual


    2.

    Warum verwendest du nicht einfach $sstart = microtime(true); ?
    Zuletzt geändert von h3ll; 02.07.2009, 12:38.

    Kommentar


    • #3
      Zitat von RamonaS Beitrag anzeigen
      Aber ich wollte fragen ob die 2 Beispiele nicht identisch sind! Ich verstehe beide zeilen so: "Wenn Inhalt vorhanden ist dann..."
      PHP-Code:
      if(!empty($arrCountry[$k])) {...}
      if(
      $arrCountry[$k]<>"") {...} 
      Das zweite geht davon aus, dass das Element existiert und prüft nur, ob sein Inhalt kein Leerstring ist.
      I don't believe in rebirth. Actually, I never did in my whole lives.

      Kommentar


      • #4
        Hallo h3ll,

        >Warum verwendest du nicht einfach $sstart = microtime(true); ?
        Tja, du frägst mich da sachen...
        Hab ich irgendwo aus einem script mal rausgeklaut


        Hab dein beispiel gerde getestet, liefert auch den identischen wert zurück wie die anderen 2
        PHP-Code:
        <?php

        $sstart
        =array_sum(explode(' ',microtime()));
        echo 
        "<br />".$sstart;

        $sstart=strtok(microtime(),' ')+strtok(' ');
        echo 
        "<br />".$sstart;

        $sstart microtime(true);
        echo 
        "<br />".$sstart;

        /*
        1246535189.23
        1246535189.23
        1246535189.23
        */

        ?>

        Aber wenn wir schon mal dabei sind, damit lese ich das am scriptende aus:
        PHP-Code:
        echo "Erstellt in ".number_format(array_sum(explode(' ',microtime()))-$sstart,4,",",".")." sek"
        ...kann man da auch was vereinfachen oder kürzen?
        ACHTUNG: RamonaS zeigte ein beschämendes Verhalten in der Vergangenheit

        Kommentar


        • #5
          PHP-Code:
          echo 'Erstellt in ' . (microtime(true) - $sstart) . ' sek'
          PHP-Code:
          printf('Erstellt in %.4f sek'microtime(true) - $sstart); 

          Kommentar


          • #6
            Aja danke...

            Ich muß aber 4 stellen hinterm komma einfügen, da sonst immer 0 sek da steht...
            ACHTUNG: RamonaS zeigte ein beschämendes Verhalten in der Vergangenheit

            Kommentar


            • #7
              Deswegen auch das %.4f, was bedeutet Float-Wert mit 4 Kommastellen.

              Kommentar

              Lädt...
              X