[PHP-BUG] Req #60755 [NEW]: "*" modifier for sprintf

2012-01-14 Thread dohardgopro at gmail dot com
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)

2012-04-23 Thread dohardgopro at gmail dot com
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)

2012-04-24 Thread dohardgopro at gmail dot com
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)

2012-04-24 Thread dohardgopro at gmail dot com
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)

2012-04-26 Thread dohardgopro at gmail dot com
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