传递类时没有传递方法? PHP

时间:2016-10-09 01:03:44

标签: php oop yii getter

我想问的是,

假设我有一个班级Info,并且在getABC()

的信息中有一个吸气剂

在控制器中,我分配了类似

的内容
$info = new Info();

$variable['info'] =$info;

$variable正在传递给视图。

在视图中,我能使用$variable['info']->getABC()之类的内容吗? 我知道我可以自己测试一下,并且没有说出类似的东西不存在,$variable['info']确实显示了一些东西。

我只是想确保$variable['info']->getABC()假设不起作用或它应该但我只是做错了,这就是为什么我无法得到所需的东西。

以下实际代码........

class CreditCardPayment{

private $_card_type = '';
private $_card_number = '';
private $_card_number_last_4 = '';

public function setCardType($v)
{
    $this->_card_type = $v;
    return $this;
}

public function setCardNumber($v)
{
    $this->_card_number = $v;
    return $this;
}

public function setCardNumberLast4($v) {
    $lastFourDigits =  substr($v, -4);
    $output = 'xxxx-xxxx-xxxx-' . $lastFourDigits;
    $this->_card_number_last_4 = $output;
    return $this;
}

public function getCardType() {
    return $this->_card_type;
}

public function getCardNumber() {
    return $this->_card_number;
}

public function getCardNumberLast4() {
    return $this->_card_number_last_4;
}

}

并且在Controller中让我们说它什么时候成功......它会是这样的$creditCardPayment = new CreditCardPayment而我试过var_dump($creditCardPayment)肯定信息全部填满了当然那些{{1}因此我必须使用private检索它们。

控制器

getter

然后在我看来......我做了这个测试

$ordermess['creditCardPaymentInfo'] = $creditCardPayment;
 \Yii::$app->session->set('ordermess', $ordermess);
 $this->redirect('/pay/completed');

然后当我加载页面时,我会收到错误。

  

在非对象

上调用成员函数getCardNumberLast4()

1 个答案:

答案 0 :(得分:0)

是。它应该工作。如果在为视图分配变量的函数中存在清理代码,则可能是将对象转换为数组。