1

これはおそらく私がこれまでに尋ねた中で最もばかげた質問であることはわかっています...しかし、私は基準点を探し続けており、非常に多くのランダムな質問があり、見つけるのが最も困難です. 正しい構文の問題である可能性が最も高いことはわかっていますが、私の人生では、多くの試行錯誤の末、おそらく質問する方が簡単だとわかっています....(また、 lastInsertId() は可能な解決策にはなりません他の省略されたコードがあるため)...正しく返すにはグローバル変数である必要があります...私の理解する限り....明示的ではありません

質問: この変数を正しくエコーするにはどうすればよいですか:

エコーコード

$customer = new SoClassy();
$var1 = "test 1";
$var2= "test 2";
$var3= "test 3";
try {
$customer->add_function($var1,$var2,$var3);
$last_insert_id= $customer->$return_this_variable; 

echo "HERE:  ";
echo $last_insert_id;
}
catch (Exception $e) {
print "Error: " . $e->getMessage();
}

クラスコード (異なる *.php)

 function add_function($var1,$var2,$var3)
     {
        $data = array(
            'position_one' => $var1,
            'position_two' => $var2,
            'position_three' => $var3
        );
        try {
            $this->db->insert($this->config->database->tables->table_name, $data);
            $return_this_variable = $this->db->lastInsertId();
       return $return_this_variable;
            }
        catch ...{}
        catch ...{}
    }
4

2 に答える 2

2

私が質問を正しく理解していれば..関数はあなたが望む値を返しています。したがって、関数呼び出しを変数に割り当てます。

$last_insert_id = $customer->add_function($var1,$var2,$var3);

于 2013-05-11T23:04:24.033 に答える
1

1 つの関数結果以外のものを渡す必要がある場合は、提案された方法の代替方法に従うことを検討してください。

class SoClassy {

protected $itemId;

public function add_function($var1,$var2,$var3)
     {
        $data = array(
            'position_one' => $var1,
            'position_two' => $var2,
            'position_three' => $var3
        );
        try {
            $this->db->insert($this->config->database->tables->table_name, $data);
            $this->itemId = $this->db->lastInsertId();
            }
        catch ...{}
        catch ...{}
    }

}


public function doSomethingElse() {  ... }

public function doItAll($var1,$var2,$var3) {
    $this->add_function($var1,$var2,$var3)
    $this->doSomethingElse();
    return $this->itemId;
}

}

メソッドで多くの操作を実行する必要がある場合は、メソッドがモンスターになるのを避けるために、このようなものに頼ることができます。

doSomethingElse およびその他すべてのクラス メソッドで、itemId (またはその他のクラス変数) に対して必要なことは何でも行うことができます。基本的に、必要なすべての一時変数を 1 か所に保持し、それらをグローバルにせずに、名前の衝突の危険を冒します。

于 2013-05-11T23:10:34.613 に答える