PHP问题,我确信这有一个简单的解决方案,只是看不到它

1 php xml string

我是php的新手,这个小小的bug一直在吃掉我的一天,也许是因为我不知道的一些php属性?

作为从xml文件中获取一些数据的一些代码的一部分(使用基于事件的Expat解析器),我有以下代码

$xmlFields;
$fieldName = "";
Run Code Online (Sandbox Code Playgroud)

...............其他一些代码............

function char($parser,$data)
{

    global $xmlFields, $fieldName;

    if($fieldName) {
        if($fieldName == "brandName" || "oeNumber" || "articleId" || "quantityPerPackingUnit" || "attrName") {
             $xmlFields[$fieldName] = $data;
             echo $data;
        } 
    }
}
Run Code Online (Sandbox Code Playgroud)

我试着回声$xmlFields["brandName"],例如,没有打印.

1)我知道这$xmlFields["brandName"]是非空的,因为echo $ data实际上返回了一些东西.

2)如果我改为$xmlFields[$fieldName] = 'some string'; 那么echo $xmlFields["brandName"]将打印'some string'

那为什么不打印$xmlFields["brandName"]呢?

Yazan,提前谢谢

Izn*_*ood 7

你无法链接这样的OR.尝试

    if($fieldName == "brandName" || $fieldName =="oeNumber" || $fieldName =="articleId" || $fieldName =="quantityPerPackingUnit" || $fieldName == "attrName") {
Run Code Online (Sandbox Code Playgroud)

正如Deceze所说,当你在数组中搜索时,一个更好的选择是使用

if (in_array($fieldName, array("brandName", "oeNumber", "articleId", "quantityPerPackingUnit", "attrName")))
Run Code Online (Sandbox Code Playgroud)

我知道有些语言允许这样的构造,但php不是其中之一.