本篇文章不是讲解如何用.net开发自己的dll然后PHP通过com调用。主要记录PHP官方支持的DOTNET
基本语法如下:
$obj = new DOTNET("assembly", "classname")assembly是net程序集名称,classname是程序集下的类,先用net的hashtable练练,好久没有写net.
$hashtable = new DOTNET("mscorlib","System.Collections.Hashtable");
$hashtable->Add(1,"张三");
$hashtable->Add(2,"李四");
$hashtable->Add(3,"王五");
$hashtable->Remove(3);//移除一个元素
echo $hashtable[3];
$hashtable->clear();//清除所有hashtable元素
unset($hashtable);基本方法均通过,由于没有测试自己开发的dll注册程序集是否支持,可以自行测试,但是PHP已经有COM,彷佛多次一举。
使用php函数array_multisort()即可实现和SQL一样的order by排序. 例如我们需要对会员表按照主键降序排列,年龄升序排列://会员表数据 $list = []; $list[] = ['mid' =>&n...
PHP不像net支持多继承,自身只支持单继承,为了解决这个问题,php出了Trait这个特性,减少单继承语言的限制。并且能让代码复用率更高。说白了就是一个对象的属性和方法扩展工具一样。例如:trait exts { public f...
<?php /** * daemonize让当前脚本为守护进程执行 * @param string $callback 匿名函数 */ function daemonize($callback) {...
php7.1引入了PHP异步信号处理函数pcntl_async_signals() 来处理阻塞问题。在php7之前信号处理方式有2种,第一种是基于ticks来每执行一行代码来触发执行信号监听,第二种是直接while(true){ //监听信号 }第一种方式如果某行的代码阻塞时间较长会影响...
php生成器的方法getReturn获取生成器迭代完成后的返回值,当生成器迭代完成会将生成器的返回值返回,因此如果迭代器未进行迭代是获取不到值的,如果你没有return值则返回null,参考代码:<?php function G1() { &nbs...
编写socket服务检测是否有新连接加入都要使用stream_socket_accept和socket_accept来获取,但是默认是阻塞的,想要更换为非阻塞并不能用stream_set_blocking($socket, false),因为stream_set_blocking只是设置socket...