Req #77290 [Opn->Csd]: asXML - fist argument behavior
| From: | cmb@php.net | Date: | Tue, 10 Mar 2020 11:00:54 +0000 |
| Subject: | Req #77290 [Opn->Csd]: asXML - fist argument behavior | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-226000@lists.php.net to get a copy of this message | ||
Edit report at https://bugs.php.net/bug.php?id=77290&edit=1
ID: 77290
Updated by: cmb@php.net
Reported by: lagodichyuriy at gmail dot com
Summary: asXML - fist argument behavior
-Status: Open
+Status: Closed
Type: Feature/Change Request
Package: SimpleXML related
Operating System: Archlinux
PHP Version: 7.2.13
-Assigned To:
+Assigned To: cmb
Block user comment: N
Private report: N
New Comment:
This feature request is already implemented in the master branch[1].
[1] <https://github.com/php/php-src/commit/743d27631fa600f071d4b3b1cf061708a9866f5b>
Previous Comments:
------------------------------------------------------------------------
[2018-12-12 19:26:51] Wes dot example at example dot org
I agree with you.
The function implementation must not be aware on whether the argument was filled in automatically or
actually specified at call time by developer. Defining behavior depending on whether the argument
was explicitly specified or not is just terrible. Unfortunately this happens everywhere in PHP,
it's not just this function
------------------------------------------------------------------------
[2018-12-12 18:18:25] lagodichyuriy at gmail dot com
Description:
------------
Current asXML() behavior of the SimpleXMLElement object is not really neat: this method may accept
"filename" as a first argument for data storing on a HDD.
However, if a "filename" is empty (let's say "null" or empty string), this
method will throw a warning about it.
This logic asks from the programmer create very strange structures to avoid such warning messages:
"if ($filename) { return $xml->asXML($filename); } else { return $xml->asXML(); }"
Test script:
---------------
<?php
function example($file_path = null)
{
$xml = new \SimpleXMLElement('<data></data>');
return $xml->asXML($file_path);
}
example(); # will throw "PHP Warning: SimpleXMLElement::asXML(): Filename cannot be empty in
..."
Expected result:
----------------
I suggest to make a "filename" as an optional argument for this method.
Actual result:
--------------
PHP Warning: SimpleXMLElement::asXML(): Filename cannot be empty in ...
------------------------------------------------------------------------
--
Edit this bug report at https://bugs.php.net/bug.php?id=77290&edit=1