我知道这可能是我迄今为止要求的最愚蠢的问题......但我一直在寻找参考点以及最难以找到的随机问题。 我知道它最有可能是正确的语法问题,但对于我的生活,经过多次试验和错误,我知道它可能更容易问....(同样,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();
}
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 ...{}
}
答案 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(或其他类变量)执行任何操作。基本上你将所有临时变量放在一个地方,而不是让它们全局化,冒着名字冲突的风险。