2016-05-26 1 views
-3

ich Debuggen einige Code und wenn ich die Daten in einem lesbaren Art und Weise zu drucken versucht, es wurde sehr seltsam angezeigt ...fehl am Platz ausgegeben, wenn Array Druck

echo "<br />users:" . print_r($users); 
echo "<br />items:" . print_r($items); 

Das Ergebnis war:

Array () 
users:1Array () 
items:1 

Warum wird das Ergebnisarray vor der Zeichenfolge "users:" angezeigt?

Antwort

1

print_r direkt auf die Standardausgabe druckt aufzuschieben. Die Ausführungsreihenfolge ist hier:

  1. print_r
  2. nach stdout
  3. return true
  4. mit true Zeichenfolge verketten (wird 1)
  5. echo die verkettete Zeichenfolge
nach stdout
1

Wenn Sie print_r() innen und Echo verwenden möchten, müssen Sie print_r() sagen, seine Ausgabe wie diese

echo "<br />users:" . print_r($users,true); 
echo "<br />items:" . print_r($items,true); 

Die manual for print_r()