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

Reply via email to