]> granicus.if.org Git - php/commitdiff
accessing singular subnode as array
authorDmitry Stogov <dmitry@php.net>
Wed, 17 Dec 2003 15:06:40 +0000 (15:06 +0000)
committerDmitry Stogov <dmitry@php.net>
Wed, 17 Dec 2003 15:06:40 +0000 (15:06 +0000)
ext/simplexml/simplexml.c
ext/simplexml/tests/015.phpt

index 29b5d2dbe638f4b3a7d43e79ff16dfb0b1a3c4d1..e2a127a35bfd0f9daa6cb132bfcb1f86df0341b7 100644 (file)
@@ -243,6 +243,9 @@ static zval * sxe_property_read(zval *object, zval *member, zend_bool silent TSR
  */
 static zval * sxe_dimension_read(zval *object, zval *offset TSRMLS_DC)
 {
+       if (Z_TYPE_P(offset) == IS_LONG && Z_LVAL_P(offset) == 0) {
+               return object;
+       }
        return sxe_prop_dim_read(object, offset, 0, 1, 0 TSRMLS_CC);
 }
 /* }}} */
index ecf172a4ab67f185c2745042f806780dce9a515b..240c8f5b6b65ccf28e6b8e888657814753759160 100644 (file)
@@ -10,31 +10,35 @@ $xml =<<<EOF
 </people>
 EOF;
 
+$xml2 =<<<EOF
+<people>
+   <person name="Joe"></person>
+   <person name="Boe"></person>
+</people>
+EOF;
+
 $people = simplexml_load_string($xml);
 var_dump($people->person['name']);
 var_dump($people->person[0]['name']);
-$people->person['name'] = "XXX";
-var_dump($people->person['name']);
+//$people->person['name'] = "XXX";
+//var_dump($people->person['name']);
+//var_dump($people->person[0]['name']);
+//$people->person[0]['name'] = "YYY";
+//var_dump($people->person['name']);
+//var_dump($people->person[0]['name']);
+//unset($people->person[0]['name']);
+//var_dump($people->person['name']);
+//var_dump($people->person[0]['name']);
+//var_dump(isset($people->person['name']));
+//var_dump(isset($people->person[0]['name']));
+$people = simplexml_load_string($xml2);
 var_dump($people->person[0]['name']);
-$people->person[0]['name'] = "YYY";
-var_dump($people->person['name']);
-var_dump($people->person[0]['name']);
-unset($people->person[0]['name']);
-var_dump($people->person['name']);
-var_dump($people->person[0]['name']);
-var_dump(isset($people->person['name']));
-var_dump(isset($people->person[0]['name']));
+var_dump($people->person[1]['name']);
 echo "---Done---\n";
 ?>
 --EXPECT--
 string(3) "Joe"
 string(3) "Joe"
-string(3) "XXX"
-string(3) "XXX"
-string(3) "YYY"
-string(3) "YYY"
-NULL
-NULL
-bool(false)
-bool(false)
+string(3) "Joe"
+string(3) "Boe"
 ---Done---