|
php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login |
[2016-08-22 14:55 UTC] mistr111 at yahoo dot com
Description: ------------ I have a problem concerning COM support in PHP 7. I have been using COM called from PHP applications for a very long time. After calling new COM(... , I used to call methods with several in/out parameters. The result is used just to check status of the call but data is extracted from in/out parameters. Everything has worked just fine in different PHP versions for almost a decade till I tried PHP 7. I am able to call methods and can access results without problems, but in/out parameters stay the same after the call. I carried out tests on the same machine with PHP 5.6 and everything worked OK. When I switched to PHP 7 or beta PHP 7.1, output parameters were unaffected only result was correctly filled out. (It did not matter whether I used 32-bit or 64-bit versions). I used Windows Server 2008 R2 Standard for testing. Binaries for PHP from http://windows.php.net/download/ and http://windows.php.net/qa/ (PHP 7.0.10 - VC14 x86 Thread Safe, VC14 x64 Thread Safe and PHP 7.1.0 beta2) For Apache from https://www.apachelounge.com/download/ (Apache 2.4.23 Win64, Apache 2.4.23 Win32) with appropriate,latest C++ Redistributables installed I combined 32-bit versions of COM, Apache, PHP and then 64-bit versions with the same result. Test script: --------------- <?php $comTest = new COM("comTest.comTestIF") or die("Unable to instantiate comTest"); $parIn="111";$parOut1="";$parOut2=""; $result = $comTest->test($parIn,$parOut1,$parOut2); // after the call $parOut1,$parOut2 parameters are unaffected although they are changed inside com. Only result is correct ?> PatchesPull RequestsHistoryAllCommentsChangesGit/SVN commits
|
|||||||||||||||||||||||||||
Copyright © 2001-2025 The PHP GroupAll rights reserved. |
Last updated: Sat Oct 25 03:00:01 2025 UTC |
I searched the line with the error. That's the line began to give an error on 7.0.11: $pass=$vfp->Eval("rtri(pass)"); This method should return a value.