从外部归类变量

时间:2013-05-11 22:58:19

标签: php zend-framework variables return

我知道这可能是我迄今为止要求的最愚蠢的问题......但我一直在寻找参考点以及最难以找到的随机问题。 我知道它最有可能是正确的语法问题,但对于我的生活,经过多次试验和错误,我知道它可能更容易问....(同样,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 ...{}
    }

2 个答案:

答案 0 :(得分:2)

如果我正确理解了这个问题..函数返回你想要的值。因此,您将函数调用分配给变量:

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

答案 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(或其他类变量)执行任何操作。基本上你将所有临时变量放在一个地方,而不是让它们全局化,冒着名字冲突的风险。