我有一个名为 reportPayment 的对象:
class reportPayment extends JournalListElement {
public $paymentType;
public $paymentNum;
public $paymentAmnt;
public $accID;
public $accDesc;
function setPaymentAmnt($paymentAmnt) {
$this->paymentAmnt = MoneyHelper::centsToDollars($paymentAmnt);
}
function getPaymentAmnt() {
return $this->paymentAmnt;
}
}
另一个类遍历此对象的公共属性以写入 XML 文件;通过:
foreach ($object as $key => $value) { }
我的问题是我$paymentAmnt只需要通过这里的 setter 进行设置,以便centsToDollars()调用函数。这仅在我转向$paymentAmnt私有属性时才有效,这是我在遍历对象属性时无法承受的。
简而言之,我需要的是一种方法:
确保centsToDollars()
在设置时调用$paymentAmnt
确保$paymentAmnt
可以从外面看到
编辑:现在可以按照 Michal 的回答将其设置为私有,并且仍然可以通过 getter 访问该属性。将它设置为私有意味着我无法迭代对象的属性,但在这种情况下这对我来说非常重要。有没有办法在 Yii2/PHP 中做到这一点?
慕森王
幕布斯6054654