2016-11-22 2 views
1

Hallo Freunde, ich bekomme einige Array-Wert von einer anderen Seite, und ich sollte diesen Wert in meine 'wp-Beiträge' Tabelle setzen. Dafür habe ich eine Funktion erstellt, die einen Array-Wert und einen DB-Verbindungswert erhält. Unten können Sie sehen, wie ich einen Wert an diese Funktion gesendet habe.Verwenden von Funktion in Wordpress zu Pars-Array-Wert

foreach ($avaible as $listingx) { 
    AddPost(&$mysqli, $listingx); 
    } 

Und hier unten versuche ich zuerst in meine Protokolldatei diese Werte zu schreiben.

function AddPost(&$mysqli, $listing){ 
    foreach ($listing as $key => $value) { 
     mylog(" key ::".print_r($key, TRUE)); 
     mylog(" value ::".print_r($value, TRUE)); 
    } 
} 

Schreiben in der Protokolldatei hatte in der gleichen Datei zu anderen Funktionen gearbeitet. Aber in der AddPost-Funktion funktioniert das nicht. Und wenn es zu "AddPost()" kommt, dann funktioniert es nicht. Bitte sagen Sie mir, warum diese Funktion nicht funktioniert.

Antwort

1

Sie verwenden references falsch: das Referenzzeichen sollte für die Funktionsdefinition verwendet werden, nicht für den Funktionsaufruf. So dies ändern:

AddPost(&$mysqli, $listingx); 

Um dies:

AddPost($mysqli, $listingx); 

Von PHP Doc:

Es gibt keinen Hinweis Zeichen auf einem Funktionsaufruf - nur auf Funktion Definitionen. Funktionsdefinitionen allein reichen aus, um das Argument als Referenz korrekt zu übergeben. Ab PHP 5.3.0 erhalten Sie eine Warnung sagen, dass "Call-Time-Pass-by-Reference" veraltet ist, wenn Sie in foo (& $ a) verwenden; &. Und seit PHP 5.4.0 wurde Call-Time-Pass-by-Reference entfernt, so dass die Verwendung einen schwerwiegenden Fehler verursachen wird.

Wenn Sie WP_Debug aktiviert hatten, sollten Sie einen Fehler darüber gesehen haben.

+0

Ok, aber selbst wenn ich diese Variable "$ mysqli" nicht verwende, funktioniert es nicht. – sanju

+0

Könnten Sie genauer erklären, was nicht funktioniert? Wird die Funktion überhaupt aufgerufen? Wie lautet der Code der Mylog-Funktion? Bitte stellen Sie einige Debug-Informationen zur Verfügung. – vard

+0

Ah, tut mir leid, es ist meine Schuld, ich habe die Funktion "}" nicht geschlossen. Vielen Dank – sanju

Verwandte Themen