PHP相关
php7新特性
1.类型的声明
php7可以声明函数传参的类型和返回值的类型,比如可以用int,string声明参数和返回值的类型,如下:
代码:declare(strict_types=1);
function add(int $a,int $b):int{
return $a+$b;
}
echo add(1, 2).'
';
echo add(1.5, 2.6);
返回结果:
在php-5.6.27版本及以前版本的返回结果为:
在php-7.0.12版本及以后版本的返回结果为:
php5是无法执行上面代码的,php7执行的时候会先输出一个3和一个报错( Argument 1 passed to add() must be of the type integer, float given);
2.新增了操作符
旧版本:$a = $a ? $a : 1;
php7:$a = $a ?? 1;
laravel和yii区别
1.laravel每个方法都要定义路由,yii则不需要
2.laravel不支持命令生成curd,yii中可以使用gii快速生成curd
3.laravel封装的比较深比较重,而yii则比较轻巧
数据库相关
1.mysql和mongo的区别
mysql是关系型数据库,mongo是非关系型数据库,mongo将数据存储为一个文档,数据结构是键值对,文档相当于是json对象,mongo不支持事务和sql,不经过sql解析,所以mongo能抗高并发,mysql支持事务和sql且能支持连表查询,对数据准确性要求很高的话不能用mongo
2.mysql和es的区别(以及es为什么会快)
musql是是关系型数据库,es是非关系数据库,es将数据存储为文档,mysql索引使用的是b+树,es使用的索引是倒排索引,模糊查询的时候b+树需要全表扫描,而es则是把数据进行分词形成term字典,然后对字典进行创建索引,索引放到内存中,减少了磁盘io,所以es很快