#29973 [Asn->Fbk]: Comparing COM object variable with NULL throws an exception

From: Date: Sat, 19 Mar 2005 20:49:36 +0000
Subject: #29973 [Asn->Fbk]: Comparing COM object variable with NULL throws an exception
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-75536@lists.php.net to get a copy of this message
ID: 29973 Updated by: sniper@php.net Reported By: tetikr at spytech dot cz -Status: Assigned +Status: Feedback Bug Type: COM related Operating System: Win2000 PHP Version: 5.0.1 Assigned To: wez New Comment: Please try using this CVS snapshot: http://snaps.php.net/php5-latest.tar.gz For Windows: http://snaps.php.net/win32/php5-win32-latest.zip Previous Comments: ------------------------------------------------------------------------ [2004-09-09 21:25:51] wez@php.net in this case you should be doing: try { $a = new COM(...); // use it here } catch (exception $e) { // failed to create it } in other cases, where you have been passed the object, use is_object() to check if it is valid. I'll see if I can fix the shorthand "if (!$a)" syntax someone in the next month. ------------------------------------------------------------------------ [2004-09-06 14:27:03] tetikr at spytech dot cz Some objects work and some not. The following code creates an object that works not. It throws a COM exception "Member not found". Test it for yourself, I hope it will fail :-) --------------------------------- $o = new COM("WScript.Shell"); if (!$o) /* dummy */ ; else echo $o->CurrentDirectory; --------------------------------- ------------------------------------------------------------------------ [2004-09-06 08:06:19] derick@php.net What is the full error message? ------------------------------------------------------------------------ [2004-09-03 19:08:58] tetikr at spytech dot cz Description: ------------ Comparing COM object variable with NULL throws an exception Reproduce code: --------------- $a = new COM(.....); if (!$a) { ...... } else { ..... } Expected result: ---------------- If $a is non null, I expect the ELSE block to be performed. Actual result: -------------- PHP throws an exception when trying to evaluate !$a. I think it tries to access the default COM object's property. If this is a valid behavior, how should I test for null? ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=29973&edit=1

« previous php.bugs (#75536) next »