2016-03-23 13 views
0

こんにちは、私はOOP PHPについて比較的新しいので、いくつかの概念を頭に入れようとしています。私は公開と非公開の2つの方法があります。別のメソッドの結果へのアクセス

パブリック関数は、パラメータが取得値で埋められていて、プライベートメソッドを使用してデータベースにクエリを実行しています。

public function viewProject($id) { 

    if (!intval($id)) { 
     $this->projectError = 'The requested project must be a numeric value'; 
     return false; 
    } 

    if (!$this->findProject($id)) { 
     $this->projectError = 'The specified project was not found.'; 
     return false; 
    } 

    return true; 
} 

private function findProject($pid) { 
    $data = $this->_db->get("projects", array('id', "=", $pid)); 
    return $data->results(); 
} 

は、私のようなVARでfindProject方法から結果を格納することができるようにしたい

ます$ this-> PROJECTNAME = //しかし、私は完全にないんだけど名前

のためにここにつながりますパブリックメソッドでクエリの結果にアクセスする方法を確認してください。

+1

PHPのOOPの基本:http://php.net/manual/en/language.oop5.basic.php。あなたが必要とするのは、自分の値を非公開で保存するクラス属性ですが、そのメソッドの範囲外です。 – klaar

答えて

0

public function viewProject($id) { 
    if (!intval($id)) { 
     $this->projectError = 'The requested project must be a numeric value'; 
     return false; 
    } 
    $this->$project = $this->findProject($id); //project has the value 
    if (!$project) { 
     $this->projectError = 'The specified project was not found.'; 
     return false; 
    } 



    return true; 

} 

private function findProject($pid) { 
    $data = $this->_db->get("projects", array('id', "=", $pid)); 
    return $data->results(); 

} 

を試してみて、それが役立ちます:)

+0

あなたがしたこととその理由を説明できますか? – klaar

+0

私はちょうど$ this-> findProject()という関数呼び出しの結果を$ this-> projectに保存しました。これは彼が望むものです – FastTurtle

+0

これはうまくいきました、ありがとうございます。 – Paradigm

1

クラスのすべてのpoperties、公共、保護及び民間がそのクラスのすべてのメソッドにアクセスすることができます願っています。 projectNameを(プライベート)プロパティとして定義すると、他のすべてのメソッドでアクセスできます。

また、クエリ結果はおそらく多次元配列であるため、結果からprojectName値を取得する必要があります。

class A 
{ 
    protected $projectName; 

    public function viewProject($id) { 
     if (!intval($id)) { 
      $this->projectError = 'The requested project must be a numeric value'; 
      return false; 
     } 

     $results = $this->findProject($id); 
     if (!$results) { 
      $this->projectError = 'The specified project was not found.'; 
      return false; 
     } 

     //Parse results 
     //assuming $this->_db->get() returns a multi-dimensional array 
     //assuming 'projectName' corresponds is the db column name 
     $this->projectName = $results[0]['projectName']; 

     return true; 
    } 

    private function findProject($pid) { 
     $data = $this->_db->get("projects", array('id', "=", $pid)); 
     return $data->results(); 
    } 
} 
関連する問題