php静态调用::方法与动态调用new()的区别

1.静态方法调用采用::使用方法,静态方法中不允许使用$this,因为静态方法的调用不需要实例化, 而$this是实例化後才出现的, 所以静态方法类似于一个普通的函数
2.静态方法是加栽到内存,而且还少了NEW的内存空间速度相对快一点效率好点。

isset()和empty()的区别

isset() 检测变量是否设置

若变量不存在则返回 FALSE
若变量存在且其值为NULL,也返回 FALSE
若变量存在且值不为NULL,则返回 TURE

empty() 判断是否为空0 空字符串null false都为空

MyISAM和 InnoDB 的基本区别?索引结构如何实现?

数据结构
MyISAM:每个MyISAM在磁盘上存储成三个文件。第一个文件的名字以表的名字开始,扩展名指出文件类型。.frm文件存储表定义。数据文件的扩展名为.MYD (MYData)。索引文件的扩展名是.MYI (MYIndex)。
InnoDB:所有的表都保存在同一个数据文件中(也可能是多个文件,或者是独立的表空间文件),InnoDB表的大小只受限于操作系统文件的大小,一般为2GB。

A、MyISAM类型不支持事务,表锁,易产生碎片,要经常优化,读写速度较快,适合用于频繁查询的应用;
B、InnoDB类型支持事务,行锁,有崩溃恢复能力,读写速度比MyISAM慢,适合于插入和更新操作比较多的应用,空间占用大,不支持全文索引等。

PHP二分查找法

$array = array(11,3,56,62,21,66,32,78,36,76,39,88,34);
$target = 32;
$beg = 0;
$end = count($array) - 1;
// 二分查找算法,指定数字里面的键是多少
function binSearch($array, $beg, $end, $target)
{
    if ($beg <= $end){
        var_dump($beg, $end);echo "\n";
        $mid =  intval(($beg+$end)/2 );
        if ($array[$mid] ==  $target){
            return $mid;
        }elseif ($target <= $array[$mid]){
            return binSearch($array, $beg,  $mid-1, $target);
        }else{
            return binSearch($array,$mid+1, $end-1, $target);
        }
    }
    return false;
}
$find = binSearch($array, $beg, $end, $target);
var_dump($find);

C语言实现简单php自定义扩展

很久之前因为PHP算法和C语言算出的结果不一样,当时写了两个扩展忘记怎么弄的了。
先记录一下找一下资料后续补充完整
使用C语言编写方法
在编译成.so文件

// 最后需要设置PHP.ini扩展位置
extension=/../crc16_data.so
extension=/../helloworld.so