ID: 33734
User updated by: tommy_wei at hotmail dot com
Reported By: tommy_wei at hotmail dot com
-Status: Bogus
+Status: Open
Bug Type: COM related
Operating System: 2000 & 2003 & XP Pro SP2
PHP Version: 5CVS-2005-07-17 (dev)
New Comment:
Ok you are right...
You said -> The long answer is that atm we cannot support the ()=
syntax and offer
the []= as an alternative
But why this code doesn't work with PHP 5.1.0b3 & The lastest CVS
5.1.0Dev...it works for PHP 5.0.4
<?php
try{
$com=new COM("Automation_Users");//My Company ActiveX
$index=$com->IndexOf($user);
$target=$com->Items[$index];//return user object
$target->Password="password";
$com->Items[$index]=$target;//to update user's information
unset($com);
}catch(Exception $exp){
echo $exp->getMessage();
}
?>
At line >> $target=$com->Items[$index];
Error is >> [0x8002000e] Invalid number of parameters.
Any idea ?
Previous Comments:
------------------------------------------------------------------------
[2005-07-17 14:53:34] [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 short answer is PHP is different from ASP.
The long answer is that atm we cannot support the ()= syntax and offer
the []= as an alternative.
------------------------------------------------------------------------
[2005-07-17 14:20:37] tommy_wei at hotmail dot com
Description:
------------
I found something strange with COM Object but I'm not sure.
My System
- Windows 2000-2003 Server & XP Pro sp2
- IIS ISAPI
- PHP 5.0.4 & 5.1.0b3 & 5.1.0Dev-200507170630
My code...
<?php
try{
$com=new COM("Automation_Users");//My Company ActiveX
$index=$com->IndexOf($user);
$target=$com->Items($index);//return user object
$target->Password="password";
$com->Items($index)=$target;//to update user's information
unset($com);
}catch(Exception $exp){
echo $exp->getMessage();
}
?>
The problem is at the line -> $com->Items($index)=$target;
- PHP 5.0.4
$com->Items($index)=$target;
Error -> Fatal error: Can't use method return value in write context in
D:\Project\PHP\Project\functions.php on line 580
I don't know why because this works fine with ASP
I changed the code to...
$com->Items[$index]=$target;
It works ! I don't understand why it works ?
I never used [] to pass parameter with any COM object.
- PHP 5.1.0b3 & 5.1.0Dev doesn't work any way both ($index) [$index]
$com->Items($index)=$target;
Error -> Fatal error: Can't use method return value in write context in
D:\Project\PHP\Project\functions.php on line 580
$com->Items[$index]=$target;
Error -> [0x8002000e] Invalid number of parameters.
This made me confuse -"-
---------------------------------------
I'm not sure this is a bug of my company's activeX or PHP
If you need more information please tell me.
Thank you.
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=33734&edit=1