2017-02-01 9 views
0

私はPHPには新しく、これは単純な(そして愚かな)質問かもしれません。PHP - foreachループ内のパブリック関数(WordPressウィジェット)

私はWordPressのウィジェットをコーディングしています。検索後に表示される各ユーザーのアバターのリンクを見つける必要があります。私はこの機能に、ユーザーIDを解析する必要が

<?php 
foreach ($user_query->results as $user) { 

}?> 

public function get_avatar_url($id, $args = null) { 
    $args = get_avatar_data($id, $args); 
    return $args['url']; 
} 

私はforeachのループ内のパブリック関数を置くことができますどのように

今、私はこれを持っていますか?

答えて

0

はい、foreachループでパブリック関数を使用できますが、ループ内でオブジェクトを "開く"またはインスタンス化する必要があります。

クラス名によって、あなたはこのような何か行うことができます。

<?php 
    foreach ($user_query->results as $user) { 
     $object = new yourclassname($user->ID); // maybe you don't need $user->ID to create this object 
     $args = array(); 
     $avatar_url = $object->get_avatar_url($user->ID, $args); 
    } 
?> 

いくつかのクラスを唯一のforeachループの前に一度インスタンス化される必要があり、それはクラスが何をしているかに依存します。

希望すると助かります!

+0

こんにちはBenoti 私が言ったように、私はPHPを非常に新しくしています。 公共の機能でないと違いはありますか? $オブジェクトの仕組みがわかりません:/(申し訳ありません) – Grillo

+0

ええとGrillo、ドックを読んで、ソースコードを読んでみる必要があります。私たちはあなたの与えられたコードでより多くのことをするのに十分な要素がありません。しかし、あなたの主要な質問のために、それが静的であるか私的な機能であれば違いがあります。しかし、実際には、foreachループがどこにあるかによって異なります。 foreachループがクラスの一部である場合、関数には簡単にアクセスできます。そうでない場合は、関数を静的またはパブリックにする必要があり、私はあなたのように、またはあなたのclassname :: get_avatar_url()のようにアクセスする必要があります。 – Benoti