Sind PHP Integer-Array-Indizes wirklich numerisch?

8

Betrachten Sie dieses Beispiel

%Vor%

Ausgabe

  

Array ([00] = & gt; A [0] = & gt; B [1] = & gt; C [2] = & gt; D [3] = & gt; E)

     

B

     

B

     

A

     

B

Q1. Warum ist $test[0] gleich $test["0"] , während $test[00] nicht dasselbe ist wie $test["00"]

Q2. Wenn die Antwort auf Q1 lautet, weil 00 = 0 numerisch ist, warum hat dieses Array dann einen Index als 00 und ein anderes als 0 ?

Q3. Wenn Sie nicht auf $test["00"] mit $test[0] zugreifen können, woher wissen Sie dann, welcher Index numerisch und welcher String ist? wenn beide nur Zahlen sind

Bearbeiten

Aufgrund der bisherigen Antworten gibt es noch eine andere Frage. Hier geht Frage 4.

Q4. Warum ist if(00==0) true und if(07==7) false? (für Array-Indizes)

Q5.

%Vor%

Warum ist die Ausgabe B , sollte es nicht A sein? weil das das erste Element im Array ist, an der 0. Position

    
Hanky Panky 30.05.2013, 05:42
quelle

3 Antworten

5

Gemäß der Dokumentation lautet einer der "[...] Schlüssel wirft [das] wird auftreten" ist:

  

Zeichenkette mit gültigem integer wird in die umgewandelt Ganzzahl Typ. Z.B. Der Schlüssel "8" wird tatsächlich unter 8 gespeichert. Auf der anderen Seite wird "08" nicht umgewandelt, da es sich nicht um eine gültige Dezimalzahl handelt.

[ Link ]

    
ruakh 30.05.2013, 05:52
quelle
2

Q1. Weil 00 = 0 numerisch

Q2. Der Index lautet "00" nicht 00

Versuchen Sie:

%Vor%

Q3.

%Vor%

Aus dem Handbuch: Ссылка

  

Zeichenfolgen mit gültigen Ganzzahlen werden in den Integer-Typ umgewandelt. Z.B. die Taste "8" wird tatsächlich unter 8 gespeichert. Andererseits wird "08" nicht umgewandelt, da es keine gültige Dezimalzahl ist.

Nach dem Kommentar bearbeitet

Q4. Ich denke, OPs Frage ist im Wesentlichen, warum sich das zweite und das vierte Verhalten anders verhalten:

%Vor%

Ich habe noch keine Antwort.

    
kevinamadeus 30.05.2013 05:47
quelle
-1
%Vor%     
JOE LEE 30.05.2013 05:52
quelle

Tags und Links