递归-----函数本身调用本身。每一个栈中的变量都是独立的,不受外部变量的影响,除非传参。这一点和Js不一样。
在一个php页面中要引用其他的php文件可以使用require,require_once或者include,include_once;
require引入的文件如果不存在则会报错,而include只会警告waring,程序可以继续运行。带有_once表明只会读取一次文件。
变量的地址,使用global可以引用外部的变量,使用unset()则可以删除一个变量;案例
在形参变量前面加上地址符&,则可以把函数内部变量的执行结果传到函数外面。
Js中的全局和局部变量:
1
2 var a=2;3 functionb(a){4 //局部变量
5 a+=20;6 alert(a);7 }8 b(a);9 alert(a);10 //22;
11 //传参--->> 2;
12
1 /*$a=2;2 function b(){3 //global $a;4 $a+=20;5 //未定义6 echo a;7 }8 b();9 echo $a;*/
10 //22;11 //和js里的全局变量有区别,php里面必须声明,否则只是局部变量
传参时,给参数设置默认值:
1 //------默认值设置
2 function aa($a,$b=1){3 $res=$a+$b;4 return $res;5 }6 $e=10;7 $f=100;8 echo aa($e,$f);//第二个数值会默认代替;如果第二个值重新定义,则会取代默认值
二进制:只需要知道二进制三码之间的转换规则,以及位运算的规则,基本上没有什么难度。
二进制中的原码,反码,补码
位运算规则:
案例
案例
1 echo ~5;2 //-63 //分析步骤4 //正数的原码,反码,补码都是一样的,所以先求出补码,正数的符号位以0开头5 //00000000 00000000 00000000 00000101----》1*1+0*2+1*4=56 //11111111 11111111 11111111 11111010----》取反-----现在为负数的补码,需要转换为原码7 //11111111 11111111 11111111 11111001----》转换为反码-1;8 //10000000 00000000 00000000 00000110----》原码-----》0*0+1*2+1*4=-6;
9
10 $a=-1>>2;11 echo $a;12 //013 //把二进制表示的-1向右移动2位,但是首先要算出负数的补码14 //10000000 00000000 00000000 00000001----》原码15 //11111111 11111111 11111111 11111110----》反码--(符号位不能变)16 //11111111 11111111 11111111 11111111----》补码17 //11111111 11111111 11111111 11111111----》从符号位后开始向右移动,用符号位1补齐---最后转换为原码18 //11111111 11111111 11111111 1111111019 //10000000 00000000 00000000 00000001---->>结果为-120
21 //最终结论:每向左移动一次乘以2,向右移动一次除以2;
原文:http://www.cnblogs.com/paxster/p/3545108.html