Var´in functionen ist unbekannt

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

  • Var´in functionen ist unbekannt

    Eh, ich kenne das Problem, aber keine Lösung.

    Ich hab diesen Code
    PHP-Code:
    function t(){
    return 
    $d+2;

    Nun kennt die funktiom $d nicht, diese Variable gibt es aber, sie ist nur nicht in der funktion gültig, jetzt möchte ich diese aber gültig machen, doch will diese nicht mit t($d) übergeben, gibt es einen weg, eine variable ohne übergabe zu erkennen?
    SQL Injection kitteh is...

  • #2
    global $d;


    ist aber unsauber !
    Übergeben ist besser
    TBT

    Die zwei wichtigsten Regeln für eine berufliche Karriere:
    1. Verrate niemals alles was du weißt!


    PHP 2 AllPatrizier II Browsergame

    Kommentar


    • #3
      was is daran unsauber, und gibt es ne andere methode? Die vars werden nämlich durch parse_str von einer datei geladen und wo soll ich da noch überall global hinschreiben?
      SQL Injection kitteh is...

      Kommentar


      • #4
        genau. hier die beispiele.


        PHP-Code:
        // unsauber
        function t()
        {
          global 
        $d
          
        return $d+2;
        }

        $d 2
        echo t();

        //*******************************************

        // sauber
        function t($d){
        return 
        $d+2;
        }

        echo 
        t(4); 
        INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


        Kommentar


        • #5
          Ok, aber was soll daran unsauber sein, ausser der extra zeile code?
          SQL Injection kitteh is...

          Kommentar


          • #6
            ganz einfach:

            man stelle sich ein etwas größeres Projekt vor, mit 100'ten
            von Variablen.

            Weißt du noch, wenn du nach 1 Monat anfängst nochmal was zu
            optimieren, wo die Variable, welche du gerade wegoptimierst
            durch global überall noch genutzt wird?

            Außerdem kommt dann auch ganz schnell mal die Frage auf:
            wo war den das $d in der Funktion her?

            Also immer schön alles übergeben.
            Da weißte immer genau, was geht rein, und was geht raus aus der Funktion.
            TBT

            Die zwei wichtigsten Regeln für eine berufliche Karriere:
            1. Verrate niemals alles was du weißt!


            PHP 2 AllPatrizier II Browsergame

            Kommentar


            • #7
              Original geschrieben von Seikilos
              Ok, aber was soll daran unsauber sein, ausser der extra zeile code?
              eben der fakt, dass du globale variablen verwendest.
              so etwas ist einfach unsauberer programmierstil.
              und zwar deshalb, weil sich dadurch viel zu leicht fehler einschleichen...
              I don't believe in rebirth. Actually, I never did in my whole lives.

              Kommentar


              • #8
                vor allem hat man bei übergaben eine Bessere Übersicht und Kontrolle.

                Außderdem kann man die Dunktion dann auch für andere Variablen verwenden und nicht nur für diese eine.
                tata
                moqui

                [COLOR=red]Ich will keine unaufgeforderten Mails über PHP Fragen. Es gibt ein Forum hier! Und ich bin nicht Scripter für jeden, der mir ne Mail schreibt![/COLOR]

                Kommentar


                • #9
                  @Moqui
                  was ist denn eine Dunktion?

                  --
                  @Seikilos
                  ich denke, jetzt sollte es klar sein, was sauber und unsauber ist.... oder?
                  INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                  Kommentar


                  • #10
                    ach mann...immer auf einem rumhacken

                    ich meinte natürlich Funktion!!!!!

                    ich bin zu happy um noch auf die Rechtschreibung zu achten...denn ich hab FERIEN...

                    und hab jetzt endlich Zeit C++ zu lernen
                    tata
                    moqui

                    [COLOR=red]Ich will keine unaufgeforderten Mails über PHP Fragen. Es gibt ein Forum hier! Und ich bin nicht Scripter für jeden, der mir ne Mail schreibt![/COLOR]

                    Kommentar


                    • #11
                      Original geschrieben von Moqui
                      ach mann...immer auf einem rumhacken
                      OffTopic:
                      war ja net bös' gemeint....

                      viel spass bei C++ lernen.
                      INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                      Kommentar


                      • #12
                        Hier wöllte ich aber doch einmal eine kleine Korrektur vornehmen. Allgemein "global" 's als "unsauber" zu bezeichnen ist falsch.

                        Es kommt hierbei - wie meist - auf die Verwendung an. Soll mit einer dynamischen Variable (dynamische Daten der Variablen) etwas geschehen, so sollte Sie übergeben werden.

                        Sprechen wir bei der Variablen um eine Einstellung oder andersweitig eher statische Daten (Benutzernamen, Arrays mit Benutzerdaten, Arrays mit Systemeinstellungen, Arrays für die Rechtevergabe, temporäre Arrays, ...) so ist es sinnvoll, diese mit "global" einzufügen. Macht man dies nicht, hat man bald schon Funktionsaufrufe mit zig hunderten Variablen, die alle übergeben werden müssen.
                        Viel Spass dabei
                        Eventuelle Tippfehler bei PHP-Beispielen können durchaus vorkommen, aber es geht um die grundsätzliche Möglichkeit der Anwendung.

                        Es war einmal ein Benutzer, der hatte ein Problem mit ... PHP (http://de3.php.net/manual/de/) MySQL (http://dev.mysql.com/doc/mysql/de/) HTML (http://www.selfhtml.org/)

                        Wer suchet, der findet: http://www.php-resource.de/forum/search.php
                        Immer noch nichts? Dann frag!


                        Mit freundlichen Grüßen,
                        @4u

                        Kommentar


                        • #13
                          es hat niemand gesagt, dass global im allgemeinen unsauber ist. Es war auf die vorherige Funktion bezogen.

                          Du hast schon Recht.

                          um global Deklarierungen komm man manchaml nicht drum rum, doch sind wenn möglich Argument-Übergaben doch die bessere Lösung.
                          tata
                          moqui

                          [COLOR=red]Ich will keine unaufgeforderten Mails über PHP Fragen. Es gibt ein Forum hier! Und ich bin nicht Scripter für jeden, der mir ne Mail schreibt![/COLOR]

                          Kommentar


                          • #14
                            Original geschrieben von a4u
                            Macht man dies nicht, hat man bald schon Funktionsaufrufe mit zig hunderten Variablen, die alle übergeben werden müssen.
                            wieso? auch hier braucht man NUR eine variable übergeben. der trick liegt in der verwendung von einem array.
                            INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                            Kommentar

                            Lädt...
                            X