PHP OOP,一旦设置了某个变量,就执行一个函数
设置变量值后,如何执行函数 说喜欢PHP OOP,一旦设置了某个变量,就执行一个函数,php,oop,function,methods,Php,Oop,Function,Methods,设置变量值后,如何执行函数 说喜欢 $obj = new object(); // dont perform $obj->my_function() just yet $obj->my_var = 67 // $obj->my_function() now gets run 我想让对象执行这个函数,现在必须由脚本调用 谢谢 编辑 我的变量是在类中预定义的,\uu集合对我不起作用。我建议为$obj创建一个setter函数,并在其中包含相关函数调用。所以基本上你的代码看起来
$obj = new object(); // dont perform $obj->my_function() just yet
$obj->my_var = 67 // $obj->my_function() now gets run
我想让对象执行这个函数,现在必须由脚本调用
谢谢
编辑
我的变量是在类中预定义的,\uu集合对我不起作用。我建议为$obj创建一个setter函数,并在其中包含相关函数调用。所以基本上你的代码看起来是这样的:
$obj = new ClassOfYours();
$obj->setThatValue("apple");
当然,您必须注意,该值的所有赋值都需要
通过该设置器完成,以使其正常工作。假设您在php5上,我会将该属性设置为private,所以所有直接赋值都会导致运行时错误
可以在devarticles.com上找到有关php中OOP的详细概述
HTH要准确地表达你所描述的内容,你必须使用
假设您希望在设置值后调用my_function(),则可以将这两个操作封装为一个。类似于创建一个新函数集\u my\u var(value)
使用私有属性以便调用
\u set()
:
class Myclass {
private $my_var;
private $my_var_set = false;
public function __set($var, $value) {
if ($var == 'my_var' && !$this->my_var_set) {
// call some function
$this->my_var_set = true;
}
$this->$var = $value;
}
public function __get($var, $value) {
return $this->$name;
}
}
看<调用code>\uu set()是因为
$my\u var
不可访问,并且有您的钩子。您的问题不清楚。你想在为变量设置值时调用函数吗?我同意,这是一种更干净的方法。这种方法不是很透明。我建议您使用一个普通的、非魔法的setter函数(就像其他几个建议的那样)。谢谢。二传似乎是最好的方法。是否可以扩展该函数,以便在设置3个变量后运行该函数?var_a、var_b和var_c?一旦所有这些都设置好,运行一个函数?当然,你可以在里面放任何你喜欢的逻辑。谢谢。你能看一下原始问题中的编辑吗。似乎uu set()不起作用,因为变量已经预定义。如果my_var是公共的,或者您正在类中访问它(因此具有私有访问权限),则它将不起作用。我猜这是公开的。你会注意到,在我的示例中,我故意将其设置为私有。
function set_my_var(varvalue)
{
$this->my_var = varvalue;
$this->my_function();
}
class Myclass {
private $my_var;
private $my_var_set = false;
public function __set($var, $value) {
if ($var == 'my_var' && !$this->my_var_set) {
// call some function
$this->my_var_set = true;
}
$this->$var = $value;
}
public function __get($var, $value) {
return $this->$name;
}
}