#19033 [Csd]: set_error_handler() to accepts object/method tuple
| From: | cynic@php.net | Date: | Thu, 10 Oct 2002 15:44:30 +0000 |
| Subject: | #19033 [Csd]: set_error_handler() to accepts object/method tuple | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-22072@lists.php.net to get a copy of this message | ||
ID: 19033
Updated by: cynic@php.net
Reported By: cyberwombat@yifan.net
Status: Closed
Bug Type: Program Execution
Operating System: linux 2.4.18
PHP Version: 4.2.1
New Comment:
works fine for me with a 2 days old HEAD. you're doing something
wrong.
roman@freepuppy ~ 1005:0 > php -v
PHP 4.4.0-dev (cli), Copyright (c) 1997-2002 The PHP Group
Zend Engine v1.4.0, Copyright (c) 1998-2002 Zend Technologies
roman@freepuppy ~ 1006:1 > tmp/scratch2
Notice: Undefined variable: fafa in /usr/home/roman/tmp/scratch2 on
line 13
AAError Handled
roman@freepuppy ~ 1007:0 > uname -sr
FreeBSD 4.7-RC
roman@freepuppy ~ 1008:0 > < tmp/scratch2
#!/usr/bin/env php
<?
error_reporting(E_ALL);
class Test
{
function ErrorHandler($a,$b)
{
print("Error Handled\n");
}
}
$error=new Test();
print("AA".$fafa);
set_error_handler(array($error, 'ErrorHandler'));
print("AA".$fafa);
roman@freepuppy ~ 1009:0 >
Previous Comments:
------------------------------------------------------------------------
[2002-10-10 10:34:37] gandalf@alladyn.art.pl
<?
class Test{
function ErrorHandler($a,$b){
print("Error Handled");
}
}
$error=new Test();
print("AA".$fafa);
set_error_handler(array($error, 'ErrorHandler'));
print("AA".$fafa);
?>
Result:
------------------------------------
Notice: Undefined variable: fafa in
E:\server\www\sports\futur\test.phtml on line 8
AA
Notice: Array to string conversion in
E:\server\www\sports\futur\test.phtml on line 9
Notice: Undefined variable: fafa in
E:\server\www\sports\futur\test.phtml on line 10
AA
------------------------------------
Sp - still doesnt work
------------------------------------------------------------------------
[2002-10-10 10:31:33] mfischer@php.net
He's simply using the wrong syntax.
The syntax is either
array($obj, 'method');
or
array('class', 'method');
so this makes
set_error_handler(array($obj, 'method'));
------------------------------------------------------------------------
[2002-10-10 10:29:45] cynic@php.net
i have not tested it, but presumably the interface is the same as for
call_user_func()
------------------------------------------------------------------------
[2002-10-10 10:00:24] gandalf@alladyn.art.pl
I downloaded this: http://snaps.php.net/win32/php4-win32-latest.zip
And it still doesnt work.
<?
class Test{
function ErrorHandler($a,$b){
print("Error Handled");
}
}
$error=new Test();
print("AA".$fafa);
set_error_handler('$error->ErrorHandler');
print("AA".$fafa);
?>
This bug should be probably reopened
------------------------------------------------------------------------
[2002-10-10 05:50:03] mfischer@php.net
In CVS, development snapshot is available at
http://snaps.php.net/php4-latest.tar.bz2
From the ChangeLog:
2002-06-12 Andrei Zmievski <andrei@php.net>
* NEWS:
set_error_handler() should take methods as callbacks. Also fixed it
to report
invalid callbacks.
------------------------------------------------------------------------
The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at
http://bugs.php.net/19033
--
Edit this bug report at http://bugs.php.net/?id=19033&edit=1