我有一个返回值,我var_dump()
来获取数据。
var_dump($values)
结果是:
object(WP_Error)#171 (2) { ["errors":"WP_Error":private]=> array(1) { ["upload_error"]=> array(1) { [0]=> string(28) "0B1n5jy1RsUExUWNCN01GeXBvWmM" } } ["error_data":"WP_Error":private]=> array(0) { } }
我是PHP对象检索的新手,我尝试过foreach
,但没有注意到。
我想做的是得到这个值:
["upload_error"]=> array(1) { [0]=> string(28) "0B1n5jy1RsUExUWNCN01GeXBvWmM" }
在upload_error
上设置的0B1n5jy1RsUExUWNCN01GeXBvWmM
-
WP_Error
是一个php类,您的values
是一个实例。看见https://codex.wordpress.org/Class_Reference/WP_Error详细 -
如果您想获取error,但由于它是私有的,所以无法直接获取(尽管您可以在vardump中看到它),上面的文档将告诉您如何通过提供的公共方法获取它。
-
下面的代码片段可以让您更好地理解在类实例上使用
foreach
。您可以查看手册了解更多详细信息。http://php.net/manual/en/language.oop5.iterations.phpclass WP_Error_Example { private $errors = array(); public $pk = 1; } $e = new WP_Error_Example(); $e2 = new WP_Error_Example(); // #1,#2 in var_dump shows how many instance? var_dump($e); var_dump($e2); // only public value foreach ($e as $k => $v) { var_dump($k, $v); }
注意:您需要将其保存到一个单独的文件中,并使用命令行运行它。例如:php demo.php
PS:var_dump
它在命令行中并不漂亮。