Konstanten zeigen Ihren Namen statt Ihren Wert

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

  • Konstanten zeigen Ihren Namen statt Ihren Wert

    Hallo,

    ich programmiere schon einige Zeit PHP, aber dieses Problem hatte ich noch nicht!

    Wenn PHP z.B

    PHP-Code:
    echo NACHRICHT
    verarbeiten soll und man folgenden Code davor nicht werwendet hat:

    PHP-Code:
    define("NACHRICHT",...); 
    gibt PHP einfach NACHRICHT aus, obwohl normalerweise nichts dortstehen dürfte, da die Konstante ja leer ist!


    So nun zur eigentlichen Frage:

    Ich benutze MAMBO und auf meinem alten Server bei Xenetron ging alles wunderbar und nun bei 1und1 schreibt er mir den Wert nicht mehr rein, sondern nur den Konstantennamen also z.B

    Datum: _LC_TIME

    im Quelltext steht allerdings:
    PHP-Code:
    echo "Datum: "._LC_DATE
    _LC_DATE wurde allerdings per define(...,...); gesetzt.
    Konstanten sind doch ÜBERALL sichtbar!?
    Könnt Ihr mir sagen, warum das nicht geht?
    Ich tippe mal auf die PHP.ini, aber weiß nicht was...

    gruß Flip
    Find Parties?
    Partysuche

  • #2
    error_reporting(E_ALL); gesetzt? Ich glaube nicht,

    Kommentar


    • #3
      Re: Konstanten zeigen Ihren Namen statt Ihren Wert

      PHP-Code:
      echo NACHRICHT
      error_reporting(E_ALL);
      sage ich nur. PHP denkt sich da einfach Anführungszeichen rum und sagt das auch
      Original geschrieben von Flip7
      Datum: _LC_TIME

      im Quelltext steht allerdings:
      PHP-Code:
      echo "Datum: "._LC_DATE
      _LC_DATE wurde allerdings per define(...,...); gesetzt.
      Konstanten sind doch ÜBERALL sichtbar!?
      Könnt Ihr mir sagen, warum das nicht geht?
      Ich tippe mal auf die PHP.ini, aber weiß nicht was...
      Ja die Ausgabe ist ja auch _LC_TIME ... irgendwas passt an deiner Problembeschreibung offensichtlich nicht~

      Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

      bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
      Wie man Fragen richtig stellt

      Kommentar


      • #4
        OffTopic:
        sehr aufmerksam!

        Kommentar


        • #5
          es ist tatsächlich so, dass diese ausgabe auf grund eines Ratespiels des Interpreters stattfindet....

          Konstanten MÜSSEN zuvor definiert werden...

          tut man das nicht, passiert folgendes

          der Interpreter sieht : echo NACHRICHT;

          und denkt sich.... NACHRICHT??.. was war jetzt doch NACHRICHT??.. neee.. ne Variable isses nicht... hmm.. ne Konstante isses auch nicht.. sonst wär sie ja definiert.... na dann muss es wohl ein Skalar sein... *hinschreib* *warnung ausgeb*

          deshalb schreibt der einfach das, was er sieht.. und teilt im hintergrund mit, dass er es aber eigentlich nicht besser wusste... wenn du dein error repiorting nicht "scharf" gestellt hast, wirst du von der warnung nichts mitbekommen...

          greetz, high
          Good programming is 40% experience, 20% skill, 20% RTFM, 15% caffeine, and 5% attention to detail.
          When everything else fails, manipulate the data...
          Beschriftungen / Großformatdruck / Werbemittel

          Kommentar


          • #6
            OffTopic:
            weniger aufmerksam.

            Kommentar


            • #7
              @tobiaz
              du oberschlaui... soll ich den gleichen senf nochmal hinschreiben, der ohnehin schon von ghostgambler erwähnt wurde ? *neugier*...

              however.. sein CODE ist konsitent... dort steht an allen relevanten Stellen _LC_DATE...

              aber ich halte ja schon meine Klappe...
              du darfst dich nun gerne des problems annehmen und weiterhin Fleißkärtchen und aufmerksamkeitskommentare posten...
              vielleicht ist das ja der problemlösung zuträglich... ich bin raus...

              greetz, high
              Good programming is 40% experience, 20% skill, 20% RTFM, 15% caffeine, and 5% attention to detail.
              When everything else fails, manipulate the data...
              Beschriftungen / Großformatdruck / Werbemittel

              Kommentar


              • #8
                Danke erstmal!
                Also er findet die Variable tatsächlich nicht, ABER:

                ich starte eine datei index.php, in der mit vielen "include" Befehlen einige Dateien eingebunden werden.

                Normale Skalare sind nicht überall sichtbar, aber mit "define" definierte Konstaten sind doch ÜBERALL sichtbar!

                Gebt es vielleicht eine option die sich "GlobalConstants" nennt und auch FALSE ist?

                Ich kann mir des anders echt nicht mehr erklären...

                gruß Flip
                Find Parties?
                Partysuche

                Kommentar


                • #9
                  Normale Skalare sind nicht überall sichtbar, ...
                  wie bitte?
                  ... ber mit "define" definierte Konstaten sind doch ÜBERALL sichtbar!
                  ja.
                  Gebt es vielleicht eine option die sich "GlobalConstants" nennt und auch FALSE ist?
                  nein.
                  Ich kann mir des anders echt nicht mehr erklären...
                  was kannst du dir nicht erklären?

                  Kommentar


                  • #10
                    wieso gibt der server:

                    Datum: _LC_DATE

                    aus, bei folgendem quellcode:

                    in globals.php:
                    PHP-Code:
                    define("_LC_DATE""blabla"); 

                    in index.php:
                    PHP-Code:
                    include "globals.php";

                    echo 
                    "Datum: "._LC_DATE
                    Und nu? Es kommt: Datum: _LC_DATE



                    gruß Flip
                    Find Parties?
                    Partysuche

                    Kommentar


                    • #11
                      du machst etwas falsch, dein beispiel ist völlig korrekt und wird sich wie erwartet verhalten.

                      irgendwas verschweigst du.

                      Kommentar


                      • #12
                        Krassssssss...
                        Also, Alarmstufe NULL

                        Ich hab in einer language.php was geändert, wo define("_..."...); drinsteht und mein Editor(NOTEPAD VON MICROSOFT GRRRR) hat alle Zeilen gelöscht und dann ist folgendes passiert:

                        PHP-Code:
                        /*bla bla Kommentar, aber das ist ja nicht schlimm...*/

                        define("a",1);
                        define("b",2);

                        //Kommentar, der mir das Genick brach
                        define("_LC_DATE"date(..));
                        /*.......*/ 
                        so, alles in eine Zeile ergibt dann, dass alle Befehle nach dem // nicht interpretiert werden
                        voilà und schon existiert die konstante nicht, des ist doch einfach nur krass, ich könnt mir in den Ar*** beißN

                        aber vielen Dank an Euch

                        gruß Flip
                        Find Parties?
                        Partysuche

                        Kommentar


                        • #13
                          Da hast du aber mal heftigst WordPad verwendet. Notepad macht das nicht.
                          Nur wenige wissen, wieviel man wissen muss, um zu wissen, wie wenig man weiß.

                          Kommentar

                          Lädt...
                          X