二十一、语句include和require的区别
require是无条件包含,也就是如果一个流程里加入require,无论条件成立与否都会先执行require,当文件不存在或者无法打开的时候,会提示错误,并且会终止程序执行
include有返回值,而require没有(可能因为如此require的速度比include快),如果被包含的文件不存在的化,那么会提示一个错误,但是程序会继续执行下去
注意:包含文件不存在或者语法错误的时候require是致命的,而include不是
require_once,include_once表示了只包含一次,避免了重复包含
二十二、php中传值与传引用的区别,并说明传值什么时候传引用
变量默认总是传值赋值,那也就是说,当将一个表达式的值赋予一个变量时,整个表达式的值被赋值到目标变量,这意味着:当一个变量的赋予另外一个变量时,改变其中一个变量的值,将不会影响到另外一个变量
php也提供了另外一种方式给变量赋值:引用赋值。这意味着新的变量简单的引用(换言之,成为了其别名或者指向)了原始变量。改动的新的变量将影响到原始变量,反之亦然。
使用引用赋值,简单地将一个&符号加到将要赋值的变量前(源变量)
对象默认是传引用
对于较大的数据,可以考虑传引用,这样可以节省内存的开销
二十三、PHP 不使用第三个变量实现交换两个变量的值
//方法一
$a.=$b;
$b=str_replace($b,"",$a);
$a=str_replace($b,"",$a);
//方法二
list($b,$a)=array($a,$b);
var_dump($a,$b);
二十五、redis 和 memache 缓存的区别
1.数据类型
redis支持多种数据类型(5种):hash string list set zset
memcache 只支持key-value
2.持久性
redis 支持两种持久化方式 RDB、AOF
memcache 不支持持久化
3.分布式存储
redis支持master-slave复制模式
memcache可以使用一致性hash做分布式
4