【发布时间】:2017-10-01 21:03:55
【问题描述】:
我正在尝试使用一个 php 函数,它返回一个变量 $historicalData,它是一个对象数组。变量的var_dump是:
[0]=>
object(Scheb\YahooFinanceApi\Results\HistoricalData)#40 (7) {
["date":"Scheb\YahooFinanceApi\Results\HistoricalData":private]=>
object(DateTime)#22 (3) {
["date"]=>
string(26) "2017-09-28 00:00:00.000000"
["timezone_type"]=>
int(3)
["timezone"]=>
string(3) "UTC"
}
["open":"Scheb\YahooFinanceApi\Results\HistoricalData":private]=>
float(153.889999)
["high":"Scheb\YahooFinanceApi\Results\HistoricalData":private]=>
float(154.279999)
["low":"Scheb\YahooFinanceApi\Results\HistoricalData":private]=>
float(152.699997)
["close":"Scheb\YahooFinanceApi\Results\HistoricalData":private]=>
float(153.279999)
["adjClose":"Scheb\YahooFinanceApi\Results\HistoricalData":private]=>
float(153.279999)
["volume":"Scheb\YahooFinanceApi\Results\HistoricalData":private]=>
int(21958200)
}
[1]=>
object(Scheb\YahooFinanceApi\Results\HistoricalData)#20 (7) {
["date":"Scheb\YahooFinanceApi\Results\HistoricalData":private]=>
object(DateTime)#30 (3) {
["date"]=>
string(26) "2017-09-29 00:00:00.000000"
["timezone_type"]=>
int(3)
["timezone"]=>
string(3) "UTC"
}
["open":"Scheb\YahooFinanceApi\Results\HistoricalData":private]=>
float(153.210007)
["high":"Scheb\YahooFinanceApi\Results\HistoricalData":private]=>
float(154.130005)
["low":"Scheb\YahooFinanceApi\Results\HistoricalData":private]=>
float(152)
["close":"Scheb\YahooFinanceApi\Results\HistoricalData":private]=>
float(154.119995)
["adjClose":"Scheb\YahooFinanceApi\Results\HistoricalData":private]=>
float(154.119995)
["volume":"Scheb\YahooFinanceApi\Results\HistoricalData":private]=>
int(26299810)
}
}
如何从这个对象数组中提取数据。例如打印“日期”和“关闭”?
更新:我使用了以下代码: 目录。 '/vendor/autoload.php';
use Scheb\YahooFinanceApi\ApiClient;
use Scheb\YahooFinanceApi\ApiClientFactory;
use GuzzleHttp\Client;
// Create a new client from the factory
$client = ApiClientFactory::createApiClient();
// Returns an array of Scheb\YahooFinanceApi\Results\HistoricalData
$historicalData = $client->getHistoricalData("AAPL", ApiClient::INTERVAL_1_DAY, new \DateTime("-3 days"), new \DateTime("today"));
echo $historicalData[0]['date'];
?>
并收到以下错误消息:
PHP 致命错误:无法在第 14 行的 stack.php 中使用 Scheb\YahooFinanceApi\Results\HistoricalData 类型的对象作为数组
【问题讨论】:
-
这几乎是“我如何 PHP?”因此它建议您需要熟悉该语言的基础知识。以the section on arrays开头。
-
将变量赋值给数组 $array = array();然后调用值
$array['date']; -
我了解数组。当对象被放入数组中时,我会迷路。