介绍为什么php手册经常说某个函数是二进制安全的?我们平时使用函数的时候,并没有发现什么不同。那么二进制安全到底是什么意思呢?PHP实验#includeintmain(){printf("%d\n",strlen("abc"));//3printf("%d\n",strlen("abc\0"));//3printf("%d\n",strlen("abc\0d"));//3printf("%d\n",strlen("abc\0def"));//3}通过上面的例子可以看出\0及以后不在strlen的计算范围内。在C语言中,所有字符串都以\0结尾。#include#includeintmain(){printf("%s\n","abc\0def");//abc}因此,受字符串中间的\0影响程序逻辑和结果的情况称为非二进制安全。通过以上两个实验思考,我们发现只有在C中才需要注意函数的二进制安全性。PHP也会遇到类似的问题吗?我怎么没遇到过。下面是两个例子。案例1