2016-11-22 3 views
1

こんにちは、私は他のページから配列の値を取得して、この値を 'wp-posts'テーブルに入れる必要があります。これのために、配列値とdb接続値を受け取る関数を作成しました。下に、私がこの関数にどのように値を送ったかを見ることができます。Wordpressの関数を使用して配列の値をパーズする

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

ここでは、まずこの値をログファイルに書き込んでみます。

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

他の機能と同じファイルで作業していたログファイルに書き込んでください。しかし、AddPost関数でこれは動作しません。そして、それが "AddPost()"に来たら、それは動作していません。なぜこの機能が働いていないのか教えてください。

答えて

1

あなたはreferencesを間違って使用しています。参照記号は、関数呼び出しではなく関数定義で使用する必要があります。 PHP Docから

AddPost($mysqli, $listingx); 

:これに

AddPost(&$mysqli, $listingx); 

:だからこれを変更

関数呼び出しには符号はありません - 唯一の機能上の 定義。関数の定義だけでは、引数を参照によって正しく に正しく渡すことができます。 PHP 5.3.0以降、foo(& $ a);に& を使用すると、 "call-time pass-by-reference"が推奨されなくなるという警告 が表示されます。 PHP 5.4.0以降、参照渡しの呼び出し時間は であったため、それを使用すると致命的なエラーが発生します。

WP_Debugを有効にしていた場合は、これに関するエラーが発生しているはずです。

+0

私はこの "$ mysqli"変数を使用しない場合でも、それは動作していません。 – sanju

+0

何がうまくいかないのか、より具体的になるでしょうか?関数はまったく呼び出されますか?マイロッグ関数のコードは何ですか?いくつかのデバッグ情報を提供してください。 – vard

+0

ああ申し訳ありませんが私のせいです。私は関数 "}"を閉じませんでした。ありがとう – sanju

関連する問題