0

プロパティを追加した次のクラスがあります$user

  include_once(__CA_LIB_DIR__."/ca/Search/BaseSearch.php");
    include_once(__CA_LIB_DIR__."/ca/Search/ObjectSearchResult.php");

class ObjectSearch extends BaseSearch {
        # ----------------------------------------------------------------------
        /**
         * Which table does this class represent?
         */
        protected $ops_tablename = "ca_objects";
        protected $ops_primary_key = "object_id";
        public $user;
        # ----------------------------------------------------------------------
        public function &search($ps_search, $pa_options=null, $user) {
                return parent::doSearch($ps_search, new ObjectSearchResult(), $pa_options);
        }
        # ----------------------------------------------------------------------
}
?>

次のコードでは、$userプロパティを検索メソッドに渡すことができません。$user$this->userおよびで試しましたnew ObjectSearch($user)。PHPを初めて使用するので、素朴な質問をしていることはわかっていますが、自分で解決することはできません。何日も試してみたと信じてください。どうすればこれを達成できますか?

$po_request                     = $this->getVar('request');
$vs_widget_id                   = $this->getVar('widget_id');
$user                           = $this->getVar('user');

$o_search = new ObjectSearch();
$result = $o_search->search('created.$user.:"2013"');

$count = 1;
while($result->nextHit()) {
print "Hit ".$count.": "."<br/>\n";
print "Idno: ".$result->get('ca_objects.idno')."<br/>\n";
print "Name: ".$result->get('ca_objects.preferred_labels.name')."<br/>\n";
$count++;

}


 ?>
4

2 に答える 2

0

二重引用符と単一引用符を混同しないでください。ここでは、連結または二重のものを使用する必要があります。

$result = $o_search->search('created ' . $user . ': 2013');

また

$result = $o_search->search("created $user: 2013");
于 2013-05-22T19:53:28.320 に答える
0
    public function &search($ps_search, $pa_options=null, $user)

それにはいくつかの問題があります:

  1. デフォルト値を持つパラメーターの後にデフォルト値のないパラメーターを渡すことは意味がありません
  2. ここで 3 番目のパラメーターを渡す必要があります (1 つだけ渡します)。
  3. クラス プロパティを手動で渡す必要はありません。彼らは自動的に$this

だから書く:

    public function &search($ps_search, $pa_options=null) {
            return parent::doSearch($ps_search, new ObjectSearchResult($this->user), $pa_options);
    }

または、クラス プロパティが必要な場合は$user、単純に$this->user.

$thisは常にオブジェクト コンテキストで設定されます。自分で渡す必要はありません。

于 2013-05-22T19:53:35.567 に答える