所以我为我的对象做了一个打印: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"字段? 我该怎么做呢?
你不能小道理。如print_r
输出所示,它位于私有成员中。
您可以从您的(? mymailer
对象:
return $this->_arrData['full_name'];
或者使用反射使其可从外部访问:
$refObj = new ReflectionObject($objMailer);
$refProp = $refObj->getProperty('_arrData');
$array = $refProp->getValue($objMailer);
echo $array['full_name'];
如果要在类的方法中回显值mymailer
可以使用:
echo $this->_arrData['full_name'];
由于它是私有的,因此您需要使用 getter
您引用的对象具有具有私有作用域解析的 _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());