]> granicus.if.org Git - php/commitdiff
Accept null $location in SoapClient::__setLocation()
authorNikita Popov <nikita.ppv@gmail.com>
Wed, 10 Feb 2021 09:50:42 +0000 (10:50 +0100)
committerNikita Popov <nikita.ppv@gmail.com>
Wed, 10 Feb 2021 09:50:42 +0000 (10:50 +0100)
Currently an empty string is used to unset the location. Once
again, it makes more sense to use a null value for this purpose
(though the special behavior of empty strings is retained).

The code comment above the function also explicitly indicates
that null should be accepted, and the function does return null
rather than an empty string for the old location value (if it
is missing).

ext/soap/soap.c
ext/soap/soap.stub.php

index 82657caad6262c72be7c2dd38d0d1e7df5f1775d..3334689ed9506a3e3220c8121235cc59a2767df7 100644 (file)
@@ -2886,7 +2886,7 @@ PHP_METHOD(SoapClient, __setLocation)
        zval *tmp;
        zval *this_ptr = ZEND_THIS;
 
-       if (zend_parse_parameters(ZEND_NUM_ARGS(), "|s", &location, &location_len) == FAILURE) {
+       if (zend_parse_parameters(ZEND_NUM_ARGS(), "|s!", &location, &location_len) == FAILURE) {
                RETURN_THROWS();
        }
 
index 298374e8663b2ff122ba9166e267ec16b867d4d9..01e41b7e8792f2d566e7444f3a03a8bfe4c0ed93 100644 (file)
@@ -108,5 +108,5 @@ class SoapClient
     public function __setSoapHeaders($headers = null) {}
 
     /** @return string|null */
-    public function __setLocation(string $location = "") {}
+    public function __setLocation(?string $location = null) {}
 }