
PHP匿点
WJHCoding
phper
展开
-
PHP匿点之巧用位运算符 << 和 >>
先来回顾下来自官方的位运算符说明:1、实质是将对应的数据的二进制值逐位左移若干位,并在空出的位置上填0,最高位溢出并舍弃。例 如 $a=10; $b=$a<<2; //$b=40根据手册描述可以看出位运算可以看出向左移一位,则是实现乘2运算。性能:位移操作的运算速度比乘法的 运算速度高很多。因此在处理数据的乘法运算的时,采用位移运算可以获得较原创 2016-08-27 11:46:04 · 572 阅读 · 0 评论 -
PHP匿点源码之变量赋值与引用
首先需要知道一个数据结构:直接上例子:<?php$a = 1;xdebug_debug_zval('a');$b = &$a;xdebug_debug_zval('a');$c = 20;$a = &$c;xdebug_debug_zval('a');var_dump('a:'.$a, 'b:'.$b, 'c:'.$c);unset($a);xde原创 2016-09-02 10:09:09 · 472 阅读 · 0 评论 -
PHP匿点之位运算[与] [或] [异] [取反]
<?php/**php中有4个位运算,分别是&与 |或 ^异或 ~取反& 两位全为1,结果为1| 有一位为1,结果为1^ 一个为0,一个为1,结果为1~ 取反0->1,1->01.二进制的最高位是符号位,0表示正数,1表示负数。2.正数的原码,反码,补码都一样。3.负数的反码=它的原码符号位不变,其它位取反(0->1,1->0)。4.负数的补码=它的反码+1。5.0的反码,转载 2016-09-05 17:03:44 · 361 阅读 · 0 评论 -
PHP匿点之位运算按位取反
我们看示例:<?php$a = 8;var_dump(~$a);先不要看结果, 试想下结果是多少? 然后我们运行下看看, 纳尼? 和我们设想的不一样,奇怪了 什么原因呢于是我们翻看PHP中文手册: ~ $a Not(按位非) 将 $a 中为 0 的位设为 1,反之亦然。 我只是简单的理解为:0变1,1变0。原来按位取反以十进制输出并不是简单理解成这样。首先要知道,在计原创 2016-09-05 16:35:04 · 1091 阅读 · 0 评论 -
PHP匿点之语言结构快于函数的原因
1、PHP中的语言结构有:echo()print()die()isset()unset()include()require()array()list()empty()2、概念普及:语言结构:就是 PHP语言 的关键词,语言语法的一部分;它不可以被用户定义或者添加到语言扩展或者库中;它可以有也可以没有变量和返回值。函数:由代码块组成的,可以原创 2016-08-27 09:14:47 · 459 阅读 · 0 评论 -
PHP匿点之string转int
今天遇到一个奇怪的问题<?phpecho 1 + 2 + "3+4+5";输出的结果为6; 当时有点想不通,1+2=3是没问题的 但是 3+“3+4+5” = 6 是为什么呢, 百思不得其解。所以我们还是从内核来看吧。我们先看下opcode:这里的 “3+4+5”被编译成3%2B4%2B5,以字符串形式存在,与整形相加,需要先转为整形,想到整形我们就intval原创 2016-09-20 23:02:33 · 4280 阅读 · 0 评论 -
PHP匿点之数组运算符+和array_merge区别
我们在平常写代码时候会经常对数组进行操作,当然少不了数组的合并操作。在数组合并时候,我们通常会用到 数组运算符+ 和 函数array_merge,对于 array_merge函数的底层实现逻辑前面文章已经介绍过了,这里我们主要说下他们两个的区别数组运算符+:以第一个array为主 第二(或其他)个array为辅,只进行一级深度的 合并操作array_merge:以最后一个arr原创 2017-03-04 17:37:23 · 486 阅读 · 0 评论