我想在PHP中使用一类.NET,并且正在使用PHP的DOTNET
类来实现此目的。我想实例化一个具有参数化构造函数的类。
$e = new DOTNET($full_assembly_string, $full_class_name);
如何通过此API传递构造函数参数?
答案 0 :(得分:0)
不可能那样做
执行此集成时,您可能需要考虑的问题很少:
就像PHP手册所说的那样,返回的对象是一个重载的对象,它使PHP不知道对象可能包含的公共方法。所以,如果你var_dump它,你只会看到一个空数组。这就是为什么在调用它之前就知道内部DLL类结构。
幸运的是,我们还有另一个专门用于.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中的类构造函数。
作为两种不同的编程语言,我们涉及不同的数据类型。话虽这么说,你必须确保DLL类方法返回PHP理解的数据类型(主要是字符串,整数,布尔值等)。如果您的方法需要返回数组列表或更复杂的结构,您可能需要考虑使用JSON进行编码。
了解更多信息