Dieses Mal zeige ich Ihnen, wie Sie mit Fehlern umgehen, wenn Sie in PHP auf Array-Elemente in doppelten Anführungszeichen zugreifen Werfen wir einen Blick darauf. foreach ($itemArr as $key => $value){
$items .= "<item>
<Title><![CDATA[$value['title']]]></Title>
<Description><![CDATA[[$value['description']]]></Description>
<PicUrl><![CDATA[$value['picUrl']]]></PicUrl>
<Url><![CDATA[$value['url']]]></Url>
</item>";
}
Das Ergebnis wird wie folgt gemeldetFehlermeldung:Parse error: syntax error, unexpected '' (T_ENCAPSED_AND_WHITESPACE), expecting identifier (T_STRING) or variable (T_VARIABLE) or number (T_NUM_STRING) in D:\hhp\wamp\www\weixin\wx_sample.php on line 146
sind, nicht in Anführungszeichen gesetzt werden? Ich habe das offizielle PHP-Handbuch gelesen, um die Beschreibung von Arrays zu lesen: $arr = array('fruit' => 'apple', 'veggie' => 'carrot');
// This will not work, and will result in a parse error, such as:
// Parse error: parse error, expecting T_STRING' or T_VARIABLE' or T_NUM_STRING'
// This of course applies to using superglobals in strings as well
print "Hello $arr['fruit']";
print "Hello $_GET['foo']";
$arr = array('fruit' => 'apple', 'veggie' => 'carrot'); // This defines a constant to demonstrate what's going on. The value 'veggie' // is assigned to a constant named fruit. define('fruit', 'veggie'); // The following is okay, as it's inside a string. Constants are not looked for// within strings, so no E_NOTICE occurs hereprint "Hello $arr[fruit]"; // Hello apple// With one exception: braces surrounding arrays within strings allows constants// to be interpretedprint "Hello {$arr[fruit]}"; // Hello carrotprint "Hello {$arr['fruit']}"; // Hello apple $arr = array('fruit' => 'apple', 'veggie' => 'carrot'); // This defines a constant to demonstrate what's going on. The value 'veggie' // is assigned to a constant named fruit. define('fruit', 'veggie'); // The following is okay, as it's inside a string. Constants are not looked for // within strings, so no E_NOTICE occurs here print "Hello $arr[fruit]"; // Hello apple // With one exception: braces surrounding arrays within strings allows constants // to be interpreted print "Hello {$arr[fruit]}"; // Hello carrot print "Hello {$arr['fruit']}"; // Hello apple
Hier sind drei richtige Schreibweisen:
Die erste Schreibweise besteht darin, die Zeichenfolge ohne Anführungszeichen zu indizieren. Zu diesem Zeitpunkt bedeutet dies, das Array-Element abzurufen, dessen Index die Zeichenfolgenfrucht und der Ausgabeapfel ist.
Bei der zweiten Schreibweise der Indexzeichenfolge werden keine Anführungszeichen hinzugefügt und gleichzeitig wird die Array-Variable in ein Paar geschweifte Klammern eingeschlossen { }. Zu diesem Zeitpunkt ist Obst tatsächlich eine Konstante und keine Zeichenfolge. Es bedeutet also, dass das Array-Element, dessen Index der Fruchtkonstantenwert ist, veggie ist, sodass Karotte ausgegeben wird.
Die dritte Schreibweise besteht darin, die Zeichenfolge nicht nur durch das Hinzufügen von einfachen Anführungszeichen in Anführungszeichen zu setzen, sondern auch die Array-Variable mit einem Paar geschweifter Klammern { } zu umschließen. Auf diese Weise wird Apfel ausgegeben, wenn es darum geht, das Array-Element abzurufen, dessen Index die Zeichenfolge Fruit ist. Später habe ich weiter gesucht und diesen Code gefunden:
// Incorrect. This works but also throws a PHP error of level E_NOTICE because // of an undefined constant named fruit // // Notice: Use of undefined constant fruit - assumed 'fruit' in... print $arr[fruit]; // apple <pre name="code" class="php">print $arr['fruit']; // apple
// This defines a constant to demonstrate what's going on. The value 'veggie'// is assigned to a constant named fruit.define('fruit', 'veggie');// Notice the difference nowprint $arr[fruit]; // carrot print $arr['fruit']; // apple
Unter normalen Umständen, wenn die Array-Variable nicht in doppelte Anführungszeichen gesetzt ist, ist das Ausgabeergebnis dasselbe, egal ob oder nicht Der Indexzeichenfolge werden einfache Anführungszeichen hinzugefügt. Wenn jedoch eine Konstante mit demselben Namen wie die Indexzeichenfolgefrucht definiert wird, wird das Ausgabeergebnis der Indexzeichenfolge ohne einfache Anführungszeichen zu Karotte, aber mit einfachen Anführungszeichen ist es immer noch Apfel .
Schlussfolgerung:
1. Wenn die Array-Variable nicht in doppelte Anführungszeichen gesetzt ist, (1) Die Indexzeichenfolge mit einfachen Anführungszeichen stellt die Zeichenfolge selbst dar
<pre name="code" class="php">$arr['fruit']
(2) Die Indexzeichenfolge ohne einfache Anführungszeichen stellt eine Konstante dar, in die sie analysiert wird eine Zeichenfolge usw. Effektiv durch Hinzufügen von einfachen Anführungszeichen.
$arr[fruit]
2. Wenn die Array-Variable in doppelte Anführungszeichen gesetzt ist, (1) Die Indexzeichenfolge stellt die Zeichenfolge selbst ohne einfache Anführungszeichen dar
"$arr[fruit]"
(2) Die Array-Variable plus geschweifte Klammern stellt die Konstante mit demselben Namen wie die Zeichenfolge dar.
"{$arr[fruit]}"
(3) Die Indexzeichenfolge plus einfache Anführungszeichen und die Array-Variable plus geschweifte Klammern stellen dar die Zeichenfolge selbst
<pre name="code" class="php"><pre name="code" class="php">"{$arr['fruit']}"
<pre name="code" class="php"><pre name="code" class="php">"$arr['fruit']"
Array-Beschreibungs-URLIch glaube, Sie haben die Methode danach gemeistert Lesen Sie den Fall in diesem Artikel. Weitere spannende Informationen finden Sie in anderen verwandten Artikeln auf der chinesischen PHP-Website!
Empfohlene Lektüre:
Detaillierte Erklärung der Schritte zum Parsen von XML und Generieren von SQL-Anweisungen in PHPDetaillierte Erklärung von die Schritte zum Implementieren der QQ-Anmeldung in PHPDas obige ist der detaillierte Inhalt vonUmgang mit Fehlern beim Zugriff auf Array-Elemente in doppelten PHP-Anführungszeichen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!