Sven Rautenberg: "==" auch bei Arrays und Objekten "gefährlich" ...;

Beitrag lesen

Moin!

Also ich sage mal, dass das "nicht sinnvoll" ist und gebe folgenden Code zu bedenken:

Du kannst immer Code konstruieren, der den Unsinn irgendeiner Methode demonstriert.

$myArray1[0] = "1abc";
$myArray1[1] = "1cde";
$myArray2["0"] = 1;
$myArray2["1"] = 1;
var_dump($myArray1 == $myArray2);


> Ergebnis: bool(true)  
  
Numerische Strings werden übrigens immer in Integer gewandelt. PHP kann keine numerischen Strings als Array-Key, außer man castet ein Object zum Array - und kriegt damit eklige Probleme.  
  
Mein Gegenbeispiel:  
~~~php
  
$myArray1[0] = "1abc";  
$myArray1[1] = "1cde";  
$myArray2[1] = "1cde";  
$myArray2[0] = "1abc";  
var_dump($myArray1 == $myArray2);  
var_dump($myArray1 === $myArray2);  
  

Ergebnis: bool(true) und bool(false)

Wie macht das Sinn???

Macht ziemlich viel Sinn im richtigen Kontext - und genau darum gehts. Wenn ich annähernd identische Arrays aus derselben Quelle kriege und sie vergleichen will, aber die Key-Reihenfolge ist eventuell unterschiedlich...

Ich denke, beim Array müsste man vorher sortieren mit keysort oder was auch immer und dann mit "===" vergleichen.

Sortieren kostet Zeit. Und ich muss direkt zweimal sortieren, statt direkt nur einmal zu vergleichen.

- Sven Rautenberg

0 49

Gültigkeit von Variablen

Kenan
  • php
  1. 0
    dedlfix
    1. 0
      T-Rex
      1. 0
        dedlfix
        1. 0

          Gültigkeit von Variablen - Lesbarkeit und Konvention

          tami
          1. 0
            dedlfix
            1. 0
              tami
              1. 0
                dedlfix
                1. 0
                  tami
                  1. 0
                    dedlfix
                    1. 0

                      Lesbarkeit und Konvention in PHP und Javascript

                      tami
                      1. 0
                        dedlfix
                        1. 0
                          tami
                          1. 0
                            dedlfix
                            1. 0

                              Lesbarkeit und Konvention in PHP und Javascript "==" und "==="

                              tami
                              1. 0
                                dedlfix
                                1. 0
                                  tami
                                  1. 0
                                    dedlfix
                                    1. 0

                                      Lesbarkeit und Konvention .- "heile Welt ... zusammenlügen"

                                      tami
                                      1. 0
                                        dedlfix
                                  2. 0
                                    Sven Rautenberg
                                    1. 0
                                      tami
                                      1. 0
                                        tami
                                      2. 1
                                        Sven Rautenberg
                                        1. 0

                                          Wo funktioniert (braucht man) "==" und nicht "==="

                                          tami
                                          1. 0
                                            Matthias Apsel
                                            1. 0
                                              tami
                                            2. 1
                                              Sven Rautenberg
                                              1. 0

                                                "==" auch bei Arrays und Objekten "gefährlich" ...;

                                                tami
                                                1. 0
                                                  dedlfix
                                                  1. 0

                                                    "==" auch bei Arrays und Objekten "gefährlich"/fehleranfällig

                                                    tami
                                                    1. 0
                                                      dedlfix
                                                      1. 0
                                                        tami
                                                        1. 0
                                                          bubble
                                                          1. 0
                                                            tami
                                                            1. 0
                                                              dedlfix
                                                              1. 0
                                                                tami
                                                2. 2
                                                  Sven Rautenberg
                                                  1. 0

                                                    "==" bei Arrays "gefährlich"? Crockford on Programming Style...

                                                    tami
                                          2. 0
                                            Matthias Apsel
  2. 0
    tami
    1. 0
      dedlfix
      1. 0

        Gültigkeit von Variablen - Coding Style

        tami
        1. 0
          dedlfix
          1. 0
            tami
  3. 0
    Sven Rautenberg
    1. 0

      Variablen-Initialisierung mit "null" === Prinzipienbefriedigung?

      tami
      1. 0
        dedlfix
      2. 0
        Sven Rautenberg