ID:          34452
 Updated by:  [EMAIL PROTECTED]
 Reported By: stochnagara at hotmail dot com
-Status:      Assigned
+Status:      Wont fix
 Bug Type:    Class/Object related
 PHP Version: 5CVS-2005-09-10 (snap)
 Assigned To: dmitry
 New Comment:

We should live with current behavior, because __set() is called
implicity. There is no call and second parameter in "$demo->abc =
null;".



Previous Comments:
------------------------------------------------------------------------

[2005-09-10 23:27:12] [EMAIL PROTECTED]

Dmitry, can you fix this?


------------------------------------------------------------------------

[2005-09-10 09:11:37] stochnagara at hotmail dot com

Description:
------------
This problem is about the error message shown when a type hinting
parameter is incorrect and fatal error occurs.

There was a recent changed which enhanced the error message to show the
caller of the function/methos which caused a fatal error and debugging
became much easier since then.

But there is one case where the additional information is not provided
- when __set method is called magically. See example below.

As you may see, the 'defined in ...' statement is missing.

Reproduce code:
---------------
<?
class foo {}

class demo {
        function __set ($name, foo $abc) {}
        function set ($name, foo $abc) {}
}

$demo = new demo;

/* CASE 1 */
$demo->set ('abc', null);

/* CASE 2 */
$demo->__set ('abc', null);

/* CASE 3 */
$demo->abc = null;


Expected result:
----------------
in case 1:

Fatal error: Argument 2 must not be null, called in ...\test.php on
line 10 and defined in ...\test.php on line 6

in case 2:

Fatal error: Argument 2 must not be null, called in ...\test.php on
line 11 and defined in ...\test.php on line 5

in case 3:

Fatal error: Argument 2 must not be null, called in ...\test.php on
line 12 and defined in ...\test.php on line 5



Actual result:
--------------
in case 1:

Fatal error: Argument 2 must not be null, called in ...\test.php on
line 10 and defined in ...\test.php on line 6

in case 2:

Fatal error: Argument 2 must not be null, called in ...\test.php on
line 11 and defined in ...\test.php on line 5

in case 3:

Fatal error: Argument 2 must not be null in ...\test.php on line 5



------------------------------------------------------------------------


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

Reply via email to