I agree that the error is signalled when you try instantiating the class, but it's not until the constructor definition is read that PHP realises that you didn't supply enough arguments (at least, it says you didn't supply enough arguments....)
<?php
class boo
{ function boo($this,$that,$the_other)
{ echo 'do nothing, go nowhere.';
}
}
$t = new boo('a',41);
?>
PHP Warning: Missing argument 3 for boo() in c:\test.php on line 4
Giving default values in the function declaration makes the problem go away, of course, but that does nothing to determine why you're getting in the first place...