继Python和Ruby能集成C#后,现在PHP也可以嵌入到C#中了。下载(含应用程序源代码和PHP5的dll):Part1 Part2
先看程序界面
再看PHP代码:
核心问题:C#对象如何跨语言进入PHP的呢?
对象的跨语言进入是脚本语言嵌入到编译语言的核心问题,无论Python嵌入到C#或者C/C++,还是JavaScript嵌入到浏览器(window和document等对象可以在js中使用就是这个核心问题的起点),还是C++集成PHP或者Python,都离不开这样的一个核心问题:编译语言的对象如何进入脚本,而脚本的类或者对象又如何被编译语言使用。
1 C#对象设为共享对象
2 PHP获得该共享对象
然后操作它 Show ,对于 button 来说就用 RegistMethod 委托 Click 事件。
对照 JavaScript (MS Script)来说,request=new ActiveXObject("Microsoft.XMLHTTP");这样的语句可以使COM类进入到脚本,还不是把现有对象进入到脚本。对于IronPython来说,python_engine.Globals["o"]=my_class_instance;用全局字典的途径可以使C#对象进入Python中。
至于C++对象进入脚本语言,各自的开发文档都有说明,而且必然支持,这里不再赘述。
后篇:
PHP脚本可以从文件装入,也可以内置在C#程序中,也可以从服务器传来。如果PHP脚本是由服务器传过来的,则可以使客户端更“软”,客户端随时按需由服务器改变,C/S拥有了B/S的最大优点;如果PHP脚本是从文件装入,客户端可以由现场维护工程师就地增加或者修改功能,即时得到客户反馈,提高满足客户要求的效率。
在 C# 嵌入 Python 不大流行的情况下,嵌入 PHP 也许是个突破口,毕竟 PHP 比 Python 使用更为广泛。