#24622 [Fbk]: Net_SmartIRC: $x=new x; if(!$x) ... fails on PHP 4.1.2
| From: | et@php.net | 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