Re: Fixing string offsets of strings.
From: Alan Knowles 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 » |
---|