settype($var, "integer"); $var = 2.5; // <-- Exception erzeugen?

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

  • settype($var, "integer"); $var = 2.5; // <-- Exception erzeugen?

    Hi,

    mit der Funktion settype() kann ich eine Variable als einen bestimmten Typen deklarieren.
    Ist es aber auch möglich, dass wenn ich die Variable z. B. als Integer deklariere, das der Typ der Variable nicht mehr verändert werden kann?
    So das, wenn versucht wird z. B. ein Float/Double Wert in die Variable zu schreiben, eine Exception (Inkompatible Typen Integer <--> Float) ausgelöst wird?
    Ans Ziel kommt nur der, der auch eins hat. www.e-cross.info

  • #2
    nein
    Ich denke, also bin ich. - Einige sind trotzdem...

    Kommentar


    • #3
      Das heisst ich kann zwar den Typen festlegen, aber eigentlich ist jede Variable doch vom Typ Variant? Eigentlich schon nen Quatsch.
      Ans Ziel kommt nur der, der auch eins hat. www.e-cross.info

      Kommentar


      • #4
        1. du bist doch der Programmierer, oder ? Also warum so 'n Quatsch ohne explizite Konvertierung machen ? Wenn du einigermassen die Benamsungskonvention beachtest, dann weiss du auch was du tutst, egal wie umfangreich das Projekt ist.

        2. IMHO wird die Variable bei Zuweisung eines Wertes implizit in den Typ des Wertes konvertiert, so dass sie nicht mehr vom Typ Variant ist.

        Kommentar


        • #5
          deswegen gibt's den typ variant ja auch nicht...
          Ich denke, also bin ich. - Einige sind trotzdem...

          Kommentar


          • #6
            Mir geht es dabei um etwas ganz anderes und ja ich kann programmieren!
            Und das ich so programmiere, wie du es in Punkt 1 beschrieben hast ist ja wohl aus der Luft gegriffen. Das habe ich nämlich so nicht geschrieben.

            Wenn es nur möglich gewesen wäre, hätte ich ein solche Lösung in mein Framework eingebunden um Entwickler (oder eben die Gästebuchschreiber) an stricktere Deklarationen zu binden.
            Ans Ziel kommt nur der, der auch eins hat. www.e-cross.info

            Kommentar


            • #7
              gib den anderen doch einfach keinen direkten zugriff auf die variablen sondern regel das über entsprechende funktionen/methoden, da kannst du ja prüfen, mit is_type und dann entsprechend reagieren
              Ich denke, also bin ich. - Einige sind trotzdem...

              Kommentar


              • #8
                Was ich eigentlich wollte ist nur die feste Deklaration von Typen, wenn das denn irgendwie möglich gewesen wäre.

                Ist ja in fast allen anderen Sprachen so der Fall. Ich wollte, falls möglich, verhindern, das jemand Code produziert wo z. B. aus einer Integer Variable später einfach ein Array gemacht wird.
                Ans Ziel kommt nur der, der auch eins hat. www.e-cross.info

                Kommentar


                • #9
                  Original geschrieben von Pascal P.
                  Ist ja in fast allen anderen Sprachen so der Fall.
                  Ist auch nur fast Besonders in der Scriptsprache ist es aber nicht so.

                  Kommentar


                  • #10
                    dann hast du bei php schlechte karten, da war das nicht vorgesehen, um den einstieg für programmierneulinge leichter zu machen und auch in php 5 wird sich da nicht's ändern; der abwärtskompatibilität sei's gedankt

                    aber wenn jemand aus einem integer ein array macht, dann lass ihn doch, wenn's knallt ist es ja nicht deine schuld
                    Ich denke, also bin ich. - Einige sind trotzdem...

                    Kommentar


                    • #11
                      Besonders in der Scriptsprache ist es aber nicht so
                      Siehst du, und das stört mich einfach in bissel :-)
                      Ans Ziel kommt nur der, der auch eins hat. www.e-cross.info

                      Kommentar


                      • #12
                        Original geschrieben von mrhappiness
                        aber wenn jemand aus einem integer ein array macht, dann lass ihn doch, wenn's knallt ist es ja nicht deine schuld
                        Klar ist es nicht meine Schuld, aber ich hätte gerne versucht so etwas von vornherein zu unterbinden
                        Ans Ziel kommt nur der, der auch eins hat. www.e-cross.info

                        Kommentar


                        • #13
                          Original geschrieben von Pascal P.
                          Siehst du, und das stört mich einfach in bissel :-)
                          damit muss du aber leben. Genauso ist's, wenn du in USA bist, must du ja auch Englisch und nicht Deutsch sprechen.

                          Kommentar


                          • #14
                            Original geschrieben von asp2php
                            damit muss du aber leben. Genauso ist's, wenn du in USA bist, must du ja auch Englisch und nicht Deutsch sprechen.
                            Sehr gutes Argument, zieht aber nicht!
                            Wollte damit ja auch nicht mir was gutes tun, sondern den PLatzhirschen die das eben nicht so handhaben wie manch andere.
                            Ans Ziel kommt nur der, der auch eins hat. www.e-cross.info

                            Kommentar


                            • #15
                              Original geschrieben von Pascal P.
                              Was ich eigentlich wollte ist nur die feste Deklaration von Typen, wenn das denn irgendwie möglich gewesen wäre.
                              PHP basiert auf automatischen Typecasting. Ist auch sinnvoll, weil alle GET und POST Variablen erst einmal als Strings aufschlagen.

                              Ist ja in fast allen anderen Sprachen so der Fall.
                              Na und? Wenn Du PHP verwenden willst, mußt Du Dich mit den Eigenheiten dieser Sprache abfinden oder eine andere Sprache verwenden.

                              Kommentar

                              Lädt...
                              X