使用ext_skel,实现一个PHP扩展

一、写在前面

本文是以PHP7.4 作为基础,讲解如何从零开始创建一个PHP扩展。本文主要讲解创建一个扩展的基本步骤都有哪些。示例中,我们将实现如下功能:

1
2
3
4
5
<?php

echo hello();

?>

输出内容:

1
2
3
$ php74 ./hello.php

$ hello word

在扩展中实现一个hello 方法,调用hello 方法后,输出 hello word!


php优先级问题

结合方向 运算符 附加信息
非结合 clone new clone 和 new
[ array()
非结合 ++ – 递增/递减运算符
非结合 ~ - (int) (float) (string) (array) (object) (bool) @ 类型
非结合 instanceof 类型
右结合 ! 逻辑操作符
* / % 算术运算符
+ - . 算术运算符字符串运算符
<< >> 位运算符
非结合 < <= > >= <> 比较运算符
非结合 == != === !== 比较运算符
& 位运算符和引用
^ 位运算符
| 位运算符
&& 逻辑运算符
&& 逻辑运算符
? : 三元运算符
= += -= *= /= .= %= &= = ^= <<= >>= 赋值运算符
and 逻辑运算符
xor 逻辑运算符
or 逻辑运算符
, 多处用到左联表示表达式从左向右求值,右联相反

php:布尔值(boolean)数据类型判断

在PHP中,将变量明确转化为boolean值是可以使用(bool) 或者 (boolean) 来进行强制转化。

以下情况将变量转化为boolean时,值会为false

布尔值 且值为false
整型值 0(零)
浮点型值 0.0(零)
空字符串


php 中instanceof的使用

作用:

(1)判断一个对象是否是某个类的实例,

(2)判断一个对象是否实现了某个接口。

第一种用法:

1
2
3
4
5
6
<?php   
$obj = new A();
if ($obj instanceof A) {
echo 'A';
}
?>