我正在制作一个可用于多项式和单项式的PHP脚本(单项式的例子是42xk^2c^3d
)。 Monomial
类定义如下:
class Monomial {
public $coefficient; // i.e. 42
public $letters; // an array of Letter objects
public $literal; // i.e. xk^2c^3d
/* Code */
}
现在,在我的应用程序中,我使用字母数组和文字变量。每当我更新单项时(例如向其添加内容时)我都不想“手动”更新literal
变量:相反,我希望它是动态的,因此访问它会调用函数“建立“它。有什么想法吗?
答案 0 :(得分:2)
编写一个函数setLetters
(甚至updateMonomial
),它会更新您的变量并使用它而不是直接访问变量。不暴露班级成员通常是个好主意。
答案 1 :(得分:0)
使用__get
方法。一个例子:
class Monomial {
public $coefficient;
public $letters;
public $literal;
function __get($var) {
if ($var != "literal") {
return $this->data[$var];
} else {
foreach ($this->letters as $letter) {
$return.=$letter->literal;
}
return $return;
}
}
__get
对象中会有一个类似的Letter
方法,可以根据请求生成文字字符串。