#34344 [Opn]: register_shutdown_function() in classes

2005-09-02 Thread thomas at ecommerce dot com
 ID:   34344
 User updated by:  thomas at ecommerce dot com
 Reported By:  thomas at ecommerce dot com
 Status:   Open
 Bug Type: SPL related
 Operating System: SuSE Linux
 PHP Version:  5.0.4
 New Comment:

Updated Expected result part


Previous Comments:


[2005-09-02 12:48:51] thomas at ecommerce dot com

Description:

When trying to call the register_shutdown_function() inside class like
this:

register_shutdown_function(array($this, _log));

and the method _log() is a private method it don't work. We assign
$this here to the function so 
register_shutdown_function() should be allowed to call a private
function inside of the class or at least throw allready here an error
message when this function is called and _log() is a private function.
Its also not documented that this wouldn't work

Reproduce code:
---
?php
final class TestClass
{
public function TestClass()
{
echo Class init call!\n;
$this-_init();
}

private function _init()
{
echo Registrering shutdown function..\n;

//-- register log function
register_shutdown_function(array($this, _log));

echo done\n;
}

private function _log()
{
//-- send mail
mail([EMAIL PROTECTED], subject, content);
}
}

echo Script start! Init Class.\n;
$TestClass = new TestClass();
echo Class inited!\n;

Expected result:

email will be send to [EMAIL PROTECTED] when script is done.

Actual result:
--
Script will not call the shutdown function





-- 
Edit this bug report at http://bugs.php.net/?id=34344edit=1


#34344 [Opn]: register_shutdown_function() in classes

2005-09-02 Thread thomas at ecommerce dot com
 ID:   34344
 User updated by:  thomas at ecommerce dot com
 Reported By:  thomas at ecommerce dot com
 Status:   Open
 Bug Type: SPL related
 Operating System: SuSE Linux
 PHP Version:  5.0.4
 New Comment:

Script start! Init Class.
Class init call!
Registrering shutdown function..
done
Class inited!

Fatal error: Call to private method TestClass::_log() from context ''
in Unknown on line 0
--
is the current result


Previous Comments:


[2005-09-02 12:53:19] thomas at ecommerce dot com

Updated Expected result part



[2005-09-02 12:48:51] thomas at ecommerce dot com

Description:

When trying to call the register_shutdown_function() inside class like
this:

register_shutdown_function(array($this, _log));

and the method _log() is a private method it don't work. We assign
$this here to the function so 
register_shutdown_function() should be allowed to call a private
function inside of the class or at least throw allready here an error
message when this function is called and _log() is a private function.
Its also not documented that this wouldn't work

Reproduce code:
---
?php
final class TestClass
{
public function TestClass()
{
echo Class init call!\n;
$this-_init();
}

private function _init()
{
echo Registrering shutdown function..\n;

//-- register log function
register_shutdown_function(array($this, _log));

echo done\n;
}

private function _log()
{
//-- send mail
mail([EMAIL PROTECTED], subject, content);
}
}

echo Script start! Init Class.\n;
$TestClass = new TestClass();
echo Class inited!\n;

Expected result:

email will be send to [EMAIL PROTECTED] when script is done.

Actual result:
--
Script will not call the shutdown function





-- 
Edit this bug report at http://bugs.php.net/?id=34344edit=1