0

所以我为我的对象打印: print_r ($objMailer);

我得到以下信息:

mymailer Object
(
[_strRecipient:mymailer:private] => 
[_strBcc:mymailer:private] => 
[_strSubject:mymailer:private] => 
[_strEmail:mymailer:private] => 
[_arrData:mymailer:private] => Array
(
    [full_name] => brian
    [invitee_name] => test
    [email] => test@testing.com
    [captcha] => kqd2q9
)

[_arrAttachments:mymailer:private] => 
[_blnCaptcha:mymailer:private] => 1
[_arrErrors:mymailer:private] => Array
(
)

)

我需要回显/打印出“全名”字段吗?我该怎么做呢?

4

4 回答 4

3

你不能小题大做。如print_r输出所示,这是在私有成员中。

您可以从 (?)mymailer对象中提供它:

return $this->_arrData['full_name'];

或通过使用反射使其从外部访问:

$refObj  = new ReflectionObject($objMailer);
$refProp = $refObj->getProperty('_arrData');
$array   = $refProp->getValue($objMailer);

echo $array['full_name'];
于 2012-08-07T23:50:19.310 回答
0

如果你想在mymailer类的方法中回显值,你可以使用:

echo $this->_arrData['full_name'];
于 2012-08-07T23:49:21.097 回答
0

由于它是私有的,因此您需要使用吸气剂

于 2012-08-07T23:50:07.927 回答
0

您引用的对象有一个 _arrData 成员变量,它具有私有范围解析,这意味着您不能从类外部访问它。有可能有一个公共访问器可以让您获得所需的信息,但除非您自省对象本身,否则无法判断。

我建议做类似的事情:

foreach (get_class_methods($mymailer) as $method) { echo 'M: ' . $method . '<br>'; } exit;

然后您可以看到可用的方法,可能有一个 getData() 方法,您可以使用它执行以下操作:

$mailerData = $mymailer->getData();

var_dump($mailerData['full_name']);

甚至可能有一种获取全名的方法,如下所示:

var_dump($mymailer->getFullname());
于 2012-08-07T23:54:35.453 回答