在正式介绍前先抛出一段代码:
<?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
ThinkPHP中有一个debug调试功能,能输出报错文件的信息,并能看到这个函数被哪些函数调用,从框架的启动开始记录,特别方便调试。于是研究了下它的底层给予了实现。<?php //--框架核心--Start //框架内置错误处理 function errDealWith($er...
(1).config.php 配置文件<?php /** * RabbitMQ_Config */ $config = [ 'host' => ...
(1)swoole启动的主进程是master进程负责全局管理,然后master进程会再fork一个manager进程。(2)manager进程开始统一管理进程创建回收管理。(3)manager进程根据设置的worker_num和task_worker_num来创建work进程和task进程因此启动s...
<?php /** * @throws Exception */ function curl() { throw new \Exception('err...
php生成器的方法getReturn获取生成器迭代完成后的返回值,当生成器迭代完成会将生成器的返回值返回,因此如果迭代器未进行迭代是获取不到值的,如果你没有return值则返回null,参考代码:<?php function G1() { &nbs...
本文基于Laravel Framework 6.17.1版本(1).创建项目(依赖真多,如此臃肿)composer create-project --prefer-dist laravel/laravel blog(2).安装定时任务composer包&nbs...