在正式介绍前先抛出一段代码:
<?php //输入的密码 $password = empty($_POST['password']) ? 0 : $_POST['password']; //设置的密码 $server_password = 'a123456'; if ($server_password == $password) { echo '密码正确'; } else { echo '密码错误'; }
我本来的想法是用户不输入密码直接提交就当用户输入的是0,但是结果另外意外了,竟然输出密码正确。难道0还能等于a123456 ?那我们验证下:
<?php var_dump((0 == 'a123456')); //输出true
经过一番了解后才知道在php中如果字符串和数字进行对比,字符串将会被强制转换为int类型和数字对比,例如上面的代码等同于下面的代码:
0 == intval('a123456')
因为a123456无法转换为int型因此变为了0,如果字符串是'123456'那就不影响了,intval后依然是123456
源码:特别适用于微信支付中通知微信支付网关function array2xml($arr, $level = 1) { $s = $level == 1 ? "<xml&g...
使用php函数array_multisort()即可实现和SQL一样的order by排序. 例如我们需要对会员表按照主键降序排列,年龄升序排列://会员表数据 $list = []; $list[] = ['mid' =>&n...
php arrayaccess 官方的说法是让你能以数组的形式访问对象,对于这种php内置接口一直不太明白有什么用,坚持多看文章,终于理解,特来分享,思路不同,更易于理解。(1).创建一个学生类,并且实现arrayaccess 接口。<?php class studen...
ThinkPHP中有一个debug调试功能,能输出报错文件的信息,并能看到这个函数被哪些函数调用,从框架的启动开始记录,特别方便调试。于是研究了下它的底层给予了实现。<?php //--框架核心--Start //框架内置错误处理 function errDealWith($er...
(1)swoole启动的主进程是master进程负责全局管理,然后master进程会再fork一个manager进程。(2)manager进程开始统一管理进程创建回收管理。(3)manager进程根据设置的worker_num和task_worker_num来创建work进程和task进程因此启动s...
当我想在一个进程中监听kill 和 kill -9命令报了这个错误。//监听kill pcntl_signal(SIGTERM, function () { posix_kill(0, SIGTERM); });...