From ad451c30a64165c5cae70b9c79ce75cd2a62dd98 Mon Sep 17 00:00:00 2001 From: lacatoire Date: Wed, 6 May 2026 09:32:29 +0200 Subject: [PATCH] [Sync EN] Clarify http_build_query() behavior with objects and __toString() (#5529) --- reference/url/functions/http-build-query.xml | 48 +++++++++++++++++++- 1 file changed, 47 insertions(+), 1 deletion(-) diff --git a/reference/url/functions/http-build-query.xml b/reference/url/functions/http-build-query.xml index 224a95dbb..2a42cff4d 100644 --- a/reference/url/functions/http-build-query.xml +++ b/reference/url/functions/http-build-query.xml @@ -1,5 +1,5 @@ - + @@ -40,6 +40,14 @@ Si data es un objeto, entonces solo los atributos públicos serán utilizados en el resultado. + + + El método mágico __toString() + no se invoca cuando un objeto es evaluado. Para utilizar la representación + en string de un objeto en la cadena de consulta, el objeto debe ser + convertido explícitamente a string. + + @@ -265,6 +273,44 @@ echo http_build_query($parent); + + + + + Uso de <function>http_build_query</function> con objetos que contienen + <link linkend="object.tostring">__toString()</link> + + + 'b', + 'foo' => new Foo() +); + +// Sin conversión, http_build_query lee las propiedades públicas +echo http_build_query($params) . "\n"; + +// Con conversión explícita, http_build_query usa la salida de __toString() +$params['foo'] = (string) new Foo(); +echo http_build_query($params) . "\n"; +?> +]]> + + &example.outputs; + +