[PHP-BUG] Req #60755 [NEW]: "*" modifier for sprintf
From: Operating system: * PHP version: Irrelevant Package: SPL related Bug Type: Feature/Change Request Bug description:"*" modifier for sprintf Description: Hi all, I'v add support of "*" modifier for sprintf, it exist in sprintf C implementation (http://www.cplusplus.com/reference/clibrary/cstdio/printf/) My patch attached Test script: --- sprintf("%.*f", 2, 2) // output "2.00" sprintf("%.2f", 2) // output "2.00" -- Edit bug report at https://bugs.php.net/bug.php?id=60755&edit=1 -- Try a snapshot (PHP 5.4): https://bugs.php.net/fix.php?id=60755&r=trysnapshot54 Try a snapshot (PHP 5.3): https://bugs.php.net/fix.php?id=60755&r=trysnapshot53 Try a snapshot (trunk): https://bugs.php.net/fix.php?id=60755&r=trysnapshottrunk Fixed in SVN: https://bugs.php.net/fix.php?id=60755&r=fixed Fixed in SVN and need be documented: https://bugs.php.net/fix.php?id=60755&r=needdocs Fixed in release: https://bugs.php.net/fix.php?id=60755&r=alreadyfixed Need backtrace: https://bugs.php.net/fix.php?id=60755&r=needtrace Need Reproduce Script: https://bugs.php.net/fix.php?id=60755&r=needscript Try newer version: https://bugs.php.net/fix.php?id=60755&r=oldversion Not developer issue: https://bugs.php.net/fix.php?id=60755&r=support Expected behavior: https://bugs.php.net/fix.php?id=60755&r=notwrong Not enough info: https://bugs.php.net/fix.php?id=60755&r=notenoughinfo Submitted twice: https://bugs.php.net/fix.php?id=60755&r=submittedtwice register_globals: https://bugs.php.net/fix.php?id=60755&r=globals PHP 4 support discontinued: https://bugs.php.net/fix.php?id=60755&r=php4 Daylight Savings:https://bugs.php.net/fix.php?id=60755&r=dst IIS Stability: https://bugs.php.net/fix.php?id=60755&r=isapi Install GNU Sed: https://bugs.php.net/fix.php?id=60755&r=gnused Floating point limitations: https://bugs.php.net/fix.php?id=60755&r=float No Zend Extensions: https://bugs.php.net/fix.php?id=60755&r=nozend MySQL Configuration Error: https://bugs.php.net/fix.php?id=60755&r=mysqlcfg
[PHP-BUG] Bug #61826 [NEW]: offsetGet not used for non existed items with second level of depth (and more)
From: Operating system: linux PHP version: 5.4.0 Package: SPL related Bug Type: Bug Bug description:offsetGet not used for non existed items with second level of depth (and more) Description: If you overload offsetGet method, and return array from it, on non existed keys/offset, test script must works without warnings. Maybe because offsetGet not used, or PHP interpreter parse it from right-to-left, something like this (pseudo code): 1. $t = foo->bar = 1 2. $a = $t; Test script: --- offsetExists($offset)) { $this->{$offset} = new self(array(), $this->getFlags(), $this->getIteratorClass()); } return parent::offsetGet($offset); } } echo "Begin\n"; $a = new OnEmptyArray(); $a->foo->bar = 1; echo "End\n"; Expected result: Begin End Actual result: -- Begin PHP Warning: Creating default object from empty value in - on line 20 End -- Edit bug report at https://bugs.php.net/bug.php?id=61826&edit=1 -- Try a snapshot (PHP 5.4): https://bugs.php.net/fix.php?id=61826&r=trysnapshot54 Try a snapshot (PHP 5.3): https://bugs.php.net/fix.php?id=61826&r=trysnapshot53 Try a snapshot (trunk): https://bugs.php.net/fix.php?id=61826&r=trysnapshottrunk Fixed in SVN: https://bugs.php.net/fix.php?id=61826&r=fixed Fixed in SVN and need be documented: https://bugs.php.net/fix.php?id=61826&r=needdocs Fixed in release: https://bugs.php.net/fix.php?id=61826&r=alreadyfixed Need backtrace: https://bugs.php.net/fix.php?id=61826&r=needtrace Need Reproduce Script: https://bugs.php.net/fix.php?id=61826&r=needscript Try newer version: https://bugs.php.net/fix.php?id=61826&r=oldversion Not developer issue: https://bugs.php.net/fix.php?id=61826&r=support Expected behavior: https://bugs.php.net/fix.php?id=61826&r=notwrong Not enough info: https://bugs.php.net/fix.php?id=61826&r=notenoughinfo Submitted twice: https://bugs.php.net/fix.php?id=61826&r=submittedtwice register_globals: https://bugs.php.net/fix.php?id=61826&r=globals PHP 4 support discontinued: https://bugs.php.net/fix.php?id=61826&r=php4 Daylight Savings:https://bugs.php.net/fix.php?id=61826&r=dst IIS Stability: https://bugs.php.net/fix.php?id=61826&r=isapi Install GNU Sed: https://bugs.php.net/fix.php?id=61826&r=gnused Floating point limitations: https://bugs.php.net/fix.php?id=61826&r=float No Zend Extensions: https://bugs.php.net/fix.php?id=61826&r=nozend MySQL Configuration Error: https://bugs.php.net/fix.php?id=61826&r=mysqlcfg
Bug #61826 [Com]: offsetGet not used for non existed items with second level of depth (and more)
Edit report at https://bugs.php.net/bug.php?id=61826&edit=1 ID: 61826 Comment by: dohardgopro at gmail dot com Reported by:dohardgopro at gmail dot com Summary:offsetGet not used for non existed items with second level of depth (and more) Status: Not a bug Type: Bug Package:SPL related Operating System: linux PHP Version:5.4.0 Block user comment: N Private report: N New Comment: And how can I implement such behavior for properties? __get is not works Previous Comments: [2012-04-23 18:41:26] cataphr...@php.net offsetGet() ins unrelated to property access. This works correctly: $ php -d display_errors=1 -d error_reporting=-1 offsetExists($offset)) { $this[$offset] = new self(array(), $this->getFlags(), $this->getIteratorClass()); } return parent::offsetGet($offset); } } echo "Begin\n"; $a = new OnEmptyArray(); $a['foo']['bar'] = 1; echo "End\n"; var_dump($a);^D Begin End object(OnEmptyArray)#1 (1) { ["storage":"ArrayObject":private]=> array(1) { ["foo"]=> object(OnEmptyArray)#2 (1) { ["storage":"ArrayObject":private]=> array(1) { ["bar"]=> int(1) } } } } ---- [2012-04-23 13:17:16] dohardgopro at gmail dot com Description: If you overload offsetGet method, and return array from it, on non existed keys/offset, test script must works without warnings. Maybe because offsetGet not used, or PHP interpreter parse it from right-to-left, something like this (pseudo code): 1. $t = foo->bar = 1 2. $a = $t; Test script: --- offsetExists($offset)) { $this->{$offset} = new self(array(), $this->getFlags(), $this->getIteratorClass()); } return parent::offsetGet($offset); } } echo "Begin\n"; $a = new OnEmptyArray(); $a->foo->bar = 1; echo "End\n"; Expected result: Begin End Actual result: -- Begin PHP Warning: Creating default object from empty value in - on line 20 End -- Edit this bug report at https://bugs.php.net/bug.php?id=61826&edit=1
Bug #61826 [Com]: offsetGet not used for non existed items with second level of depth (and more)
Edit report at https://bugs.php.net/bug.php?id=61826&edit=1 ID: 61826 Comment by: dohardgopro at gmail dot com Reported by:dohardgopro at gmail dot com Summary:offsetGet not used for non existed items with second level of depth (and more) Status: Not a bug Type: Bug Package:SPL related Operating System: linux PHP Version:5.4.0 Block user comment: N Private report: N New Comment: Also I forgot something in my code (ARRAY_AS_PROPS) offsetExists($offset)) { $this->{$offset} = new self(array(), $this->getFlags(), $this->getIteratorClass()); } return parent::offsetGet($offset); } } echo "Begin\n"; $a = new OnEmptyArray(array(), ArrayObject::ARRAY_AS_PROPS); $a->foo->bar = 1; echo "End\n"; Previous Comments: -------- [2012-04-24 07:43:46] dohardgopro at gmail dot com And how can I implement such behavior for properties? __get is not works [2012-04-23 18:41:26] cataphr...@php.net offsetGet() ins unrelated to property access. This works correctly: $ php -d display_errors=1 -d error_reporting=-1 offsetExists($offset)) { $this[$offset] = new self(array(), $this->getFlags(), $this->getIteratorClass()); } return parent::offsetGet($offset); } } echo "Begin\n"; $a = new OnEmptyArray(); $a['foo']['bar'] = 1; echo "End\n"; var_dump($a);^D Begin End object(OnEmptyArray)#1 (1) { ["storage":"ArrayObject":private]=> array(1) { ["foo"]=> object(OnEmptyArray)#2 (1) { ["storage":"ArrayObject":private]=> array(1) { ["bar"]=> int(1) } } } } [2012-04-23 13:17:16] dohardgopro at gmail dot com Description: If you overload offsetGet method, and return array from it, on non existed keys/offset, test script must works without warnings. Maybe because offsetGet not used, or PHP interpreter parse it from right-to-left, something like this (pseudo code): 1. $t = foo->bar = 1 2. $a = $t; Test script: --- offsetExists($offset)) { $this->{$offset} = new self(array(), $this->getFlags(), $this->getIteratorClass()); } return parent::offsetGet($offset); } } echo "Begin\n"; $a = new OnEmptyArray(); $a->foo->bar = 1; echo "End\n"; Expected result: Begin End Actual result: -- Begin PHP Warning: Creating default object from empty value in - on line 20 End -- Edit this bug report at https://bugs.php.net/bug.php?id=61826&edit=1
Bug #61826 [Com]: offsetGet not used for non existed items with second level of depth (and more)
Edit report at https://bugs.php.net/bug.php?id=61826&edit=1 ID: 61826 Comment by: dohardgopro at gmail dot com Reported by:dohardgopro at gmail dot com Summary:offsetGet not used for non existed items with second level of depth (and more) Status: Not a bug Type: Bug Package:SPL related Operating System: linux PHP Version:5.4.0 Block user comment: N Private report: N New Comment: Anybody? Previous Comments: [2012-04-24 07:51:44] dohardgopro at gmail dot com Also I forgot something in my code (ARRAY_AS_PROPS) offsetExists($offset)) { $this->{$offset} = new self(array(), $this->getFlags(), $this->getIteratorClass()); } return parent::offsetGet($offset); } } echo "Begin\n"; $a = new OnEmptyArray(array(), ArrayObject::ARRAY_AS_PROPS); $a->foo->bar = 1; echo "End\n"; -------- [2012-04-24 07:43:46] dohardgopro at gmail dot com And how can I implement such behavior for properties? __get is not works [2012-04-23 18:41:26] cataphr...@php.net offsetGet() ins unrelated to property access. This works correctly: $ php -d display_errors=1 -d error_reporting=-1 offsetExists($offset)) { $this[$offset] = new self(array(), $this->getFlags(), $this->getIteratorClass()); } return parent::offsetGet($offset); } } echo "Begin\n"; $a = new OnEmptyArray(); $a['foo']['bar'] = 1; echo "End\n"; var_dump($a);^D Begin End object(OnEmptyArray)#1 (1) { ["storage":"ArrayObject":private]=> array(1) { ["foo"]=> object(OnEmptyArray)#2 (1) { ["storage":"ArrayObject":private]=> array(1) { ["bar"]=> int(1) } } } } [2012-04-23 13:17:16] dohardgopro at gmail dot com Description: If you overload offsetGet method, and return array from it, on non existed keys/offset, test script must works without warnings. Maybe because offsetGet not used, or PHP interpreter parse it from right-to-left, something like this (pseudo code): 1. $t = foo->bar = 1 2. $a = $t; Test script: --- offsetExists($offset)) { $this->{$offset} = new self(array(), $this->getFlags(), $this->getIteratorClass()); } return parent::offsetGet($offset); } } echo "Begin\n"; $a = new OnEmptyArray(); $a->foo->bar = 1; echo "End\n"; Expected result: Begin End Actual result: -- Begin PHP Warning: Creating default object from empty value in - on line 20 End -- Edit this bug report at https://bugs.php.net/bug.php?id=61826&edit=1