我是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,提前谢谢
你无法链接这样的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不是其中之一.
| 归档时间: |
|
| 查看次数: |
124 次 |
| 最近记录: |