所以我为我的对象做了一个打印: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
(
)
)
我需要回显/打印出'full_name'字段?我怎么能这样做呢?
答案 0 :(得分:3)
你不能琐碎。由于print_r
输出显示在私有成员中。
您可以在(?)mymailer
对象中提供它:
return $this->_arrData['full_name'];
或使用 Reflection 使其可以从外部访问:
$refObj = new ReflectionObject($objMailer);
$refProp = $refObj->getProperty('_arrData');
$array = $refProp->getValue($objMailer);
echo $array['full_name'];
答案 1 :(得分:0)
如果要在mymailer
类的方法中回显值,可以使用:
echo $this->_arrData['full_name'];
答案 2 :(得分:0)
由于它是私密的,您需要使用getter
答案 3 :(得分: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());