【发布时间】:2018-08-28 12:49:58
【问题描述】:
如果没有回显“noname”,则如果存在 xmllang="no",我将尝试回显挪威语。喜欢
000000000121698001,
文本 000000000121699001,无名
但这只会返回所有具有 xmllang="no" 的 productid,而不是打印没有 xmllang="no" 的 productId
XML
<catalog>
<product productid="000000000121698001">
<displayname xmllang="da">text</displayname>
<displayname xmllang="fi">text</displayname>
<displayname xmllang="no">text</displayname>
<displayname xmllang="sv">text</displayname>
</product>
<product productid="000000000121699001">
<displayname xmllang="da">test</displayname>
<displayname xmllang="x-default">test</displayname>
<displayname xmllang="sv">test</displayname>
</product>
PHP
foreach ($xml->product as $product) {
foreach ($product->displayname as $name) {
switch((string) $name['xmllang']) {
case 'no':
echo $product->attributes()->productid. ",";
if (isset($name)){
echo $name. ",", PHP_EOL;
} else {
echo 'noname ,';
}
echo "<br>\n";
}
}
}
【问题讨论】:
-
isset($name)在该循环中始终为真,因为该变量在每次迭代时由foreach构造设置。 -
您的开关盒只有一个“否”盒。您可以在底部添加一个
default,如果它与前面的任何情况都不匹配,它总是会进入。
标签: php if-statement foreach