我正在使用PHP来处理COM对象,其中一个COM对象的函数参数是一个“out”参数。 PHP如何使用这些?
示例(ModifyParam可以执行任何操作,例如输出当天的单词或提供对象):
$MyCom = new COM("APPLib.APP");
$outParam;
//APP.ModifyParam(out object pParam)
$MyCom->ModifyParam($outParam);
var_dump($outParam); //NULL
该示例基于实际代码,该代码输出将是对象数组或字符串数组。实际代码不会输出列表。
答案 0 :(得分:1)
据我所知(如果我错了,你可以纠正我) - [out]
参数表示存储结果的变量。所以如果你在COM对象中有这个方法:
GetUserInfo([in] long machineID, [out] long* userID, [out] BSTR* userName)
[in]
参数表示参数,[out]
参数是将被编写的结果变量,与MySQLi::bind_result()
方法的工作方式非常相似。使用上述方法的示例代码(假设已正确设置COM对象):
$obj = new COM('Namespace.Class');
// This is the [in] parameter, the machine number we wanted to inspect.
$machineID = 1
// Define [out] variables with the correct type, according to the API.
$userID = 0;
$userName = '';
// Call the COM method.
$obj->GetUserInfo($machineID, $userID, $userName);
// Print the results.
echo "User ID: $userID<br />";
echo "User Name: $userName";