Re: Fixing string offsets of strings.

From: Date: Wed, 21 Dec 2011 14:35:47 +0000
Subject: Re: Fixing string offsets of strings.
References: 1 2 3 4  Groups: php.internals 
Request: Send a blank email to [email protected] to get a copy of this message
Done

https://bugs.php.net/patch-display.php?bug_id=60362&patch=fix_to_prevent_warning_on_isset_empty_for_55_and_a_half.patch&revision=latest <https://bugs.php.net/patch-display.php?bug_id=60362&patch=fix_to_prevent_warning_on_isset_empty_for_55_and_a_half.patch&revision=latest>

BTW these are failing in head at present - I guess somebody is working on them...
globals in global scope [Zend/tests/globals_001.phpt]
globals in local scope [Zend/tests/globals_002.phpt]
globals in local scope - 2 [Zend/tests/globals_003.phpt]
globals in local scope - 3 [Zend/tests/globals_004.phpt]
unset() CV 7 (indirect unset() of global variable in import_request_variables()) [Zend/tests/unset_cv07.phpt]

Regards
Alan

On Wednesday, December 21, 2011 10:23 PM, Alan Knowles wrote:
The fix for the warning is to use 0, rather than -1 as the last argument for is_numeric_string(), only in the zend_vm - isset code - it's a usefull warning when not used with isset. I'm just testing a patch and the related tests and will upload it to the bug soon. Regards Alan On Monday, December 19, 2011 09:19 AM, Stas Malyshev wrote:
Hi!
This should implement the isset() return false, and accessing producing a warning (but 'less' BC by returning the first character) https://bugs.php.net/patch-display.php?bug_id=60362&patch=isset_changed_warning_only_on_access.patch&revision=latest <https://bugs.php.net/patch-display.php?bug_id=60362&patch=isset_changed_warning_only_on_access.patch&revision=latest> I did end up changing most of the error messages in the affected tests to "%s on line %d".... is that the prefered way of doing it?
One note about this: conversion behavior is non-obvious there, e.g.: 'foo' - gets converted to 0 and produces: Illegal string offset 'foo' '12.34' - gets converted to 12 and produces: Illegal string offset '12.34' but '56 and foo' - gets converted to 56 and produces: A non well formed numeric value encountered I guess it's ok but error messages are different.


Thread (29 messages)

« previous php.internals (#56979) next »