我有以下(简化的XML):
<?xml version="1.0" encoding="UTF-8" ?>
<products>
<product>
<artnr>xxx1</artnr>
</product>
</products>
Run Code Online (Sandbox Code Playgroud)
以下(再次简化的PHP代码):
$xml= @simplexml_load_file($filename);
foreach ($xml->product as $product) {
if (!$this->validate_xml_product($product)) {
continue;
}
}
function validate_xml_product($product)
{
if (!property_exists('artnr', $product)) {
// why does it always validate to true?
}
}
Run Code Online (Sandbox Code Playgroud)
由于某种原因,该产品永远不会验证.
property_exists不是找出$ product中是否有artnr元素的正确方法吗?
代码中的参数顺序相反.首先是对象然后是属性名:
if (!property_exists($product, 'artnr')) {
Run Code Online (Sandbox Code Playgroud)
而且显然这仅适用于"真实"属性.如果使用__get-Method 实现该属性,则这也不起作用.
| 归档时间: |
|
| 查看次数: |
9561 次 |
| 最近记录: |