ID:               46373
 User updated by:  phpbugs at sevenlight dot com
 Reported By:      phpbugs at sevenlight dot com
-Status:           Open
+Status:           Bogus
 Bug Type:         Scripting Engine problem
 Operating System: OSX 10.5.5
 PHP Version:      5.3CVS-2008-10-23 (snap)
 New Comment:

Terribly sorry for wasting your time... set_error_handler() script was
hiding the errors...  Again, sorry... :)


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

[2008-10-23 22:04:45] [EMAIL PROTECTED]

Thank you for this bug report. To properly diagnose the problem, we
need a short but complete example script to be able to reproduce
this bug ourselves. 

A proper reproducing script starts with <?php and ends with ?>,
is max. 10-20 lines long and does not require any external 
resources such as databases, etc. If the script requires a 
database to demonstrate the issue, please make sure it creates 
all necessary tables, stored procedures etc.

Please avoid embedding huge scripts into the report.

Well, I can't reproduce it.

namespace MyNamespace;

class foo {
        public function test(bla::foobar $a) {
        }
}

$x = new foo;

#$x->test(new stdclass);
/*
Catchable fatal error: Argument 1 passed to MyNamespace::foo::test() 
must be an instance of bla::foobar, instance of stdClass given ...
*/

#$x->test(NULL);
/*
Catchable fatal error: Argument 1 passed to MyNamespace::foo::test() 
must be an instance of bla::foobar, null given, called in ...
*/

$reflect = new ReflectionClass(__NAMESPACE__ .'::foo');
$y = $reflect->getMethod('test');
#$y->invoke(new foo, 1);
/*
Catchable fatal error: Argument 1 passed to MyNamespace::foo::test() 
must be an instance of bla::foobar, integer given
*/


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

[2008-10-23 21:46:47] phpbugs at sevenlight dot com

That is not the issue.  The issue is that I DO NOT want NULLs to be
accepted, yet they are being accepted (ie. no error be thrown).  The
issue is that I want an instance of Class A and if I pass it an instance
of Class B, it is still accepted (Class B is not a child of Class A). 
The issue is if I pass ANY value of ANY kind if is accepted.  The issue
is if I ask for a non-existant class, no error is thrown at all...

In all of these instances, errors should be thrown, but they are not
being thrown.  This is why I am seeking advice as to why this might be
happening, and how I might be able to debug the actual PHP C code to
figure out what is wrong...

-Andrew

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

[2008-10-23 21:25:14] [EMAIL PROTECTED]

Using $x = new myclass; $x->execute();, i got:
Catchable fatal error: Argument 1 passed to
MyNamespace::MyClass::test() must be an instance of
MyBogusNamespace::MyBogusClass, null given, called ...

If you want accept NULL to be passed, it must be the default value to
the parameter.

public function test(MyBogusNamespace::MyBogusClass $m = NULL)

So, we will have...

Method [ <user> public method test ] {
  @@ ... 15 - 22

  - Parameters [1] {
    Parameter #0 [ <optional> MyBogusNamespace::MyBogusClass or NULL $m
= NULL ]
  }
}


Thanks.

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

[2008-10-23 21:06:45] phpbugs at sevenlight dot com

Can nobody provide any assistance?

I realize I cannot provide a small test-case script, but that is
because this exact same script works fine in the smaller test cases.  I
am looking for any advice as to how I can help track down the cause of
this bug.  If I need to add some debugging code to the PHP source and
recompile, or something else, I'm willing to do this, I just need some
guidance.  I've covered the extent of what I can come up with to test
out inside my PHP code itself, and the bug is at the point where I feel
that it would need some modifications to the PHP code for debugging
purposes, but I have no experience in debugging the PHP C code.  I can
get around debugging C, but not debugging PHP in C.

I know your job is impossible without a test case, but please give me
some help in getting you a test case.  The bug is obviously not simple
enough that a 10 line test case will trigger it (although maybe it can,
but I don't know how to yet).

Thank you,
-Andrew

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

[2008-10-23 20:54:21] [EMAIL PROTECTED]

Thank you for taking the time to write to us, but this is not
a bug. Please double-check the documentation available at
http://www.php.net/manual/ and the instructions on how to report
a bug at http://bugs.php.net/how-to-report.php



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

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/46373

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

Reply via email to