gpt4 book ai didi

PHP 数组未正确设置

转载 作者:行者123 更新时间:2023-12-04 05:28:00 26 4
gpt4 key购买 nike

我正在尝试使用以下代码从 XML 文件中读取一些 RSS 提要详细信息:

$this->feedFile = file_get_contents(__ROOT__ . '/assets/feedList.xml'); //Define this externally
$this->feedDetailsArray = array();
$this->feedXML = new SimpleXMLElement($this->feedFile);
echo "1. =========";
print_r($this->feedXML);
echo "1. =========";
foreach($this->feedXML->Feed as $feedItem) {
echo "2. =========";
echo "AJ:: feedName " . var_dump($feedItem->FeedName) . " feedURL " . var_dump($feedItem->FeedURL) . "\n";
echo "2. =========";
$feedDetails = array(
"feedName" => $feedItem->FeedName,
"feedURL" => $feedItem->FeedURL/*,
'favIconURL' => $feedItem->FavIconURL
);
echo "3. =========";
var_dump($feedDetails);
echo "3. =========";

print_r 输出以下内容:
1. =========SimpleXMLElement Object
(
[Feed] => Array
(
[0] => SimpleXMLElement Object
(
[FeedName] => Hacker News
[FeedURL] => http://news.ycombinator.com/rss
[FavIconURL] => http://ycombinator.com/favicon.ico
[Segment] => Startups
)

.
.
.

第一个 var_dump ( echo "feedName " . var_dump($feedItem->FeedName) . " feedURL " . var_dump($feedItem->FeedURL) . "\n"; ) 输出:
2. =========class SimpleXMLElement#38 (1) {
string(11) "Hacker News"
}
class SimpleXMLElement#38 (1) {
string(31) "http://news.ycombinator.com/rss"
}
AJ:: feedName feedURL
2. =========

第二个 var_dump 输出:
3. =========array(2) {
'feedName' =>
class SimpleXMLElement#38 (1) {
string(11) "Hacker News"
}
'feedURL' =>
class SimpleXMLElement#37 (1) {
string(31) "http://news.ycombinator.com/rss"
}
}
3. =========

我的问题是,为什么声明 "feedName" => $feedItem->FeedName导致分配对象而不是 SimpleXML 对象的值?我只想要值(value)而不是对象。有人可以指出我做错了什么吗?

最佳答案

SimpleXML 实现了 __toString() magic method在其对象上,否则由对象引用分配。当它们在 echo 的上下文中使用时ed 字符串(作为一个示例),您将获得返回的字符串值,但在正常赋值或引用中,您将获得整个 SimpleXMLElement对象。

如果需要字符串值,可以将其转换为字符串:

$feedDetails = array(
"feedName" => (string)$feedItem->FeedName,
"feedURL" => (string)$feedItem->FeedURL
);

关于PHP 数组未正确设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12974658/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com