PHP-----函数和二进制

递归-----函数本身调用本身。每一个栈中的变量都是独立的,不受外部变量的影响,除非传参。这一点和Js不一样。

在一个php页面中要引用其他的php文件可以使用require,require_once或者include,include_once;

require引入的文件如果不存在则会报错,而include只会警告waring,程序可以继续运行。带有_once表明只会读取一次文件。

变量的地址,使用global可以引用外部的变量,使用unset()则可以删除一个变量;案例

在形参变量前面加上地址符&,则可以把函数内部变量的执行结果传到函数外面。

Js中的全局和局部变量:

 1 <script type="text/javascript">
 2         var a=2;
 3         function b(a){
 4             //局部变量
 5             a+=20;
 6             alert(a);
 7         }
 8         b(a);
 9         alert(a);
10         //22;
11         //传参--->> 2;
12 </script>
 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     //-6
 3     //分析步骤
 4     //正数的原码,反码,补码都是一样的,所以先求出补码,正数的符号位以0开头
 5     //00000000 00000000 00000000 00000101----》1*1+0*2+1*4=5
 6     //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     //0
13     //把二进制表示的-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 11111110
19     //10000000 00000000 00000000 00000001---->>结果为-1
20 
21     //最终结论:每向左移动一次乘以2,向右移动一次除以2;
念念不忘,必有回响。
原文地址:https://www.cnblogs.com/paxster/p/3545108.html