如何在 PHP 中实例化具有参数化构造函数的 .NET class?
How to instantiate a .NET class in PHP which has a parameterized constructor?
我想在 PHP 中使用 .NET 的 class,并为此目的使用 PHP 的 DOTNET
class。我想实例化一个 class ,它有一个参数化的构造函数。
$e = new DOTNET($full_assembly_string, $full_class_name);
如何通过此 API 传递构造函数参数?
不可能那样做
在进行此集成时,您可能需要考虑以下几个问题:
- Public 方法
正如 PHP 手册所说,returned 对象是一个重载对象,这使得 PHP 不知道对象可能包含的 public 方法。所以,如果你 var_dump 它,你只会看到一个空数组。这就是为什么在调用它之前必须知道内部 DLL class 结构的原因。
对我们来说幸运的是,.NET 框架附带了另一个专门用于这项工作的工具,称为 ildasm.exe。它位于 gacutil.exe 旁边
c:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin\ 或 c:\Program Files (x86)\Microsoft SDKs\Windows\v6.0A\bin。
要加载和显示 DLL 结构,只需调用“ildasm.exe \path\to\your.dll“。
2。参数
另一个问题是您不能将参数传递给 DLL 中的 class 构造函数。
- 数据类型
作为两种不同的编程语言,我们涉及不同的数据类型。话虽如此,您将必须确保 PHP 理解的 DLL class 方法 return 数据类型(主要是字符串、整数、布尔值等)。如果您的方法需要 return 数组列表或更复杂的结构,您可能需要考虑 JSON 进行编码。
在
阅读更多内容
我想在 PHP 中使用 .NET 的 class,并为此目的使用 PHP 的 DOTNET
class。我想实例化一个 class ,它有一个参数化的构造函数。
$e = new DOTNET($full_assembly_string, $full_class_name);
如何通过此 API 传递构造函数参数?
不可能那样做
在进行此集成时,您可能需要考虑以下几个问题:
- Public 方法
正如 PHP 手册所说,returned 对象是一个重载对象,这使得 PHP 不知道对象可能包含的 public 方法。所以,如果你 var_dump 它,你只会看到一个空数组。这就是为什么在调用它之前必须知道内部 DLL class 结构的原因。
对我们来说幸运的是,.NET 框架附带了另一个专门用于这项工作的工具,称为 ildasm.exe。它位于 gacutil.exe 旁边 c:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin\ 或 c:\Program Files (x86)\Microsoft SDKs\Windows\v6.0A\bin。 要加载和显示 DLL 结构,只需调用“ildasm.exe \path\to\your.dll“。
2。参数 另一个问题是您不能将参数传递给 DLL 中的 class 构造函数。
- 数据类型
作为两种不同的编程语言,我们涉及不同的数据类型。话虽如此,您将必须确保 PHP 理解的 DLL class 方法 return 数据类型(主要是字符串、整数、布尔值等)。如果您的方法需要 return 数组列表或更复杂的结构,您可能需要考虑 JSON 进行编码。
在
阅读更多内容