PHP如何从对象返回中检索数据


PHP how to retrieve data from an object return

我有一个返回值,我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

  1. WP_Error是一个php类,您的values是一个实例。看见https://codex.wordpress.org/Class_Reference/WP_Error详细

  2. 如果您想获取error,但由于它是私有的,所以无法直接获取(尽管您可以在vardump中看到它),上面的文档将告诉您如何通过提供的公共方法获取它。

  3. 下面的代码片段可以让您更好地理解在类实例上使用foreach。您可以查看手册了解更多详细信息。http://php.net/manual/en/language.oop5.iterations.php

    class 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它在命令行中并不漂亮。