使用 php 的 com 特性可實現與 c# 函數交互:加載 c# 類型庫(com_load_typelib())創建 c# 對象實例(com_create_instance())調用 c# 函數
PHP 函數如何與 C# 交互
在 PHP 和 C# 之間進行函數交互是需要的一種常見場景,例如進行數據交換、業務邏輯擴展或集成第三方功能。本篇文章將介紹如何使用 PHP 的 COM(組件對象模型)特性與 C# 函數進行交互,并提供一個實戰案例以加深理解。
COM 概述
COM 是一種用于跨語言和平臺實現組件通信的二進制標準。它允許不同語言編寫的代碼相互訪問和使用對象。
PHP 中使用 COM
PHP 通過 [com_load_typelib()](https://www.php.net/manual/zh/function.com-load-typelib.php) 函數加載 C# 類型庫,并使用 [com_create_instance()](https://www.php.net/manual/zh/function.com-create-instance.php) 函數創建 C# 對象實例,然后即可直接調用 C# 函數。
代碼示例
以下是一個 PHP 代碼示例,演示如何與 C# 函數交互:
<?php // 加載 C# 類型庫 $typelib = com_load_typelib('C:\path\to\CSharpAssembly.tlb'); // 創建 C# 對象實例 $calculator = com_create_instance($typelib, 'Calculator'); // 調用 C# 函數 $result = $calculator->Add(10, 20); // 輸出結果 echo $result; ?>
登錄后復制
實戰案例
假設有一個 C# 程序集包含一個名為 MathLibrary 的類,該類具有以下方法:
Add(int a, int b):加兩個數字Subtract(int a, int b):減兩個數字
以下是如何在 PHP 中使用 COM 與這些 C# 函數交互的代碼:
<?php // 加載 C# 類型庫 $typelib = com_load_typelib('C:\path\to\MathLibrary.tlb'); // 創建 C# 對象實例 $mathLibrary = com_create_instance($typelib, 'MathLibrary'); // 調用 C# 函數 $addResult = $mathLibrary->Add(10, 20); $subtractResult = $mathLibrary->Subtract(20, 10); // 輸出結果 echo "Addition Result: $addResult" . PHP_EOL; echo "Subtraction Result: $subtractResult" . PHP_EOL; ?>
登錄后復制
運行此 PHP 代碼后,將輸出以下結果:
Addition Result: 30 Subtraction Result: 10
登錄后復制