Le jeu. 5 mars 2015 à 23:20, Pascal Martin, AFUP <mail...@pascal-martin.fr>
a écrit :

> Le 23/02/2015 17:06, François Laupretre a écrit :
> > Starting the vote for https://wiki.php.net/rfc/array-to-string.
>
> Hi,
>
> We talked about this with other people at AFUP and a great majority of
> us agrees that the current behavior of array to strings conversions is
> not quite useful


Nor are all the following operations:

$useOfUnexistingVariableIsOkToContinueExecution = $variableNotSet;

$obj = new stdClass();
$useOfUnexistingPropertyIsOkToContinueExecution = $obj->notFound;

$computingWithObjectIsOkToContinueExecution = 42 + new stdClass();

$array = array(42);
$useOfUnexistingOffsetIsOkToContinueExecution = $array[42];

$int = 42;
$usingANumberAsAnArrayIsFineNoNotice = $int["foo"];

$null = NULL;
$usingANonObjectAsAnObjectIsOkToContinueExecution = $null->notAnObject;

$resource = fopen("/etc/hosts", "r");
$resourceToStringConversionIsOkToContinueExecution = (string) $resource;

Running the above would produce:

PHP Notice:  Undefined variable: variableNotSet in - on line 2

Notice: Undefined variable: variableNotSet in - on line 2
PHP Notice:  Undefined property: stdClass::$notFound in - on line 5

Notice: Undefined property: stdClass::$notFound in - on line 5
PHP Notice:  Object of class stdClass could not be converted to int in - on
line 7

Notice: Object of class stdClass could not be converted to int in - on line
7
PHP Notice:  Undefined offset: 42 in - on line 10

Notice: Undefined offset: 42 in - on line 10
PHP Notice:  Trying to get property of non-object in - on line 16

Notice: Trying to get property of non-object in - on line 16

-- and, for several of us, when we started getting
> notices with PHP 5.4, it actually showed us there were bugs in our
> applications.
>

Which confirms that turning notices 'On' would allow anyone to fix code
that may seems suspect.


> So, we are +1 on this.
>
> Basically, even if notices are already bringing some useful information,
> we feel being more "strict" and "explicit" than that might help, here.
>

Why suddenly changing that specific notice, without deprecation, to one
that stop the execution and without "opt-in" for it? (and according to the
patch, only in some "array to string conversion", not all?)

I'm about to post another suggestion in a fork of this discussion which
might fit anyone, stay tuned!

Cheers,
Patrick

Reply via email to