#24622 [Fbk]: Net_SmartIRC: $x=new x; if(!$x) ... fails on PHP 4.1.2

From: Date: Tue, 15 Jul 2003 17:32:16 +0000
Subject: #24622 [Fbk]: Net_SmartIRC: $x=new x; if(!$x) ... fails on PHP 4.1.2
References: 1  Groups: php.pear.dev 
Request: Send a blank email to pear-dev+get-18268@lists.php.net to get a copy of this message
ID: 24622 Updated by: et@php.net Reported By: phpbugsspam at netebb dot com Status: Feedback Bug Type: PEAR related Operating System: Any PHP Version: Irrelevant Assigned To: meebey New Comment: That === false check is nonsense, imho. === false checks if the first operand is false, of the type boolean - which is impossible unless you set $this to false in the constructor, which is a dirty hack and won't happen if you do sane coding. So, === false is bogus. An object just evaluates to false if it has no member variables... maybe that is what happens. Maybe a default value in the classes will "fix" this... (Note: IMO, the check if object creation was "successful" isn't neccessary at all, because there's no reason for it to fail except for "class not found", and that's a fatal one.) Previous Comments: ------------------------------------------------------------------------ [2003-07-15 11:16:58] phpbugspam at netebb dot com I don't "think" it needs a patch. It does need it. Without it, !$newactionhandler evals to true and the function returns false, which is not correct. It appears that applying negation '!' to a newly created object, returns false, even if the object is a valid object. Of course, this is with PHP 4.1.2 that comes with Debian Woody, your version may work different. Do ask *me* why! Now it's my turn to ask why. Why *not* apply it? It's a simple enough patch, and certainly wont break anything. -Ross ------------------------------------------------------------------------ [2003-07-15 10:31:00] meebey@php.net Why do you think it needs this patch to work correctly, wat happens without the patch? ------------------------------------------------------------------------ [2003-07-12 13:06:41] phpbugsspam at netebb dot com Description: ------------ With PHP 4.1.2, this patch is needed to operate correctly: $ diff -uw SmartIRC.php.bak SmartIRC.php --- SmartIRC.php.bak Sat Jul 12 10:09:45 2003 +++ SmartIRC.php Sat Jul 12 11:02:39 2003 @@ -1280,7 +1280,7 @@ $id = $this->_actionhandlerid++; $newactionhandler = &new Net_SmartIRC_actionhandler(); - if (!$newactionhandler) { + if ($newactionhandler === false) { return false; } @@ -1386,7 +1386,7 @@ $id = $this->_timehandlerid++; $newtimehandler = &new Net_SmartIRC_timehandler(); - if (!$newtimehandler) { + if ($newtimehandler === false) { return false; } ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=24622&edit=1

« previous php.pear.dev (#18268) next »