PHP基础——表达式、位运算、数组
2016-03-04 11:00
603 查看
1、PHP表达式 —— 任何有值的东西
(1)算数运算符
自加:++ 自减:--$_a = $_b++;
echo $_a; //输出:1
$_c = 1;
$_a = $_c;
$_c = $_c + 1;
echo $_a; //输出:1
其他: += , -= , /= , %=比较运算符: == 判等=== 全等,值相等,类型相同,返回true!== 值不相等,或类型不同,则返回true
(2)逻辑运算符
与: $_a and $_b $_a 和$_b都为true,则表达式为true$_a && $_b $_a 和$_b都为true,则表达式为true
或:$_a or $_b $_a 或$_b为true,则表达式为true
$_a || $_b $_a 或$_b为true,则表达式为true
异或:$_a xor $_b $_a 和$_b不相同,则表达式为true
取反:!$_a 如果$_a = true ,则返回false
特别注意:运算符的优先级顺序
||的优先级高于or,&&的优先级高于or
= 的优先级比 or,and都高
(3)三元运算符
表达式:(expr1) ? (expr2) : (expr3)规则:在expr1求值为TRUE时值为expr2,在expr1求值为FALSE时值为expr3。
(4)字符串运算符
有两个字符串运算符,使用连接运算符(".").$_a = 10; $_b = 90; echo $_a . $_b ; 输出 1090
(5)类型运算符
instanceof用于确定一个PHP变量(对象)是否属于某一类class的实例2、位运算
二进制: 0,1可以表示任何数字原码:用二进制来表示一个数
原码,反码,补码
对于有符号的而言:
(1)二进制的最高位是符号位:0表示正数,1表示负数
(2)正数的原码,反码,补码都一样
(3)负数的反码 = 它的原码符号位不变,其他位取反(0变1,1变0)
(4)负数的补码 = 负数的反码 + 1
(5)0的反码补码都是0
(6)php中的数都是有符号的
(7)在计算机运算的时候,都是以补码的方式运算的
1、位运算
(1) $a & $b 按位与,将$a和$b原码中都为1的位置设为1,都为0的位置设为0,输出结果(2) $a | $b 按位或,将$a和$b原码中,只要有一方该位置为1,就将该位置设置为1,输出结果
(3) $a ^ $b 按位异或 只将$a和$b原码中数字不同的位置设置为1,输出结果
(4) ~$a 按位取反,将$a原码中0变1,1变0,输出
(5) $a << 2 左移 将$a的原码向左移动2位(每次向左移动一位,代表乘以2)
(6) $a >> 2 右移 将$a的原码向右移动2位(每次向右移动一位,代表除以2)
注意:在32位系统上不要右移超过32位,不要在结果可能超过32位的情况下左移
2、位移运算
在php中位运算符有两种: >> (右移) << (左移)算数右移:低位溢出符号位不变,并用符号位补溢出的高位
算数左移:符号位不变,低位补0
3、数组
可以用于存放多个数据的数据类型。1、数组的创建
(1)通过array创建数组$数组名 = array(值,......);
例子:$arr = array(1,90,"hello",89.5); //PHP数组中的数据类型可以是任意的。
(2)直接添加元素创建数组
$arr[0] = 123;
var_dump($arr);
默认情况下,数组的元素下标,是从0开始编号,但可自定义:
例如:
$arr ['logo'] = "beijing";
$arr['hsp'] = 123;
$arr = array("logo" => "beijing");
(3)多维数组
$arr3 = array(array(1,2,3),array(4,5,6));
var_dump($arr3);
2、数组的遍历
(1) foreach($arr as $val) {echo $val;
}
(2)适用范围更广:
foreach($arr as $key => $val) {
echo '<br>'.$key.' = '.$val; //$key 关键字 $val 值
}
3、使用array来创建数组
如果对给出的值没有指定键名,则取当前最大的整数索引值,而新的键名将是该值加一。如果指定的键名已经有了值,则该值会被覆盖。
例子:
$arr = array(5=>"logo",556,786);
echo $arr[5] ; //输出logo
echo $arr[6] ; //输出556
注意:(1)使用true作为键名时,等于使用integer 1作为键名,使用false作为键名时,等于使用integer 0.
(2)使用null作为键名将等于使用空字符串。
(3)使用小数作为键名,将自动截取整数部分
(4)不能使用数组和对象作为键(key),这样会导致一个警告:IIIegal offset type
php的数组可以动态增长!
4、关于数组的函数
(1)使用count函数统计数组条数,count($arr)(2)使用is_array函数判断数组,is_array($arr)
(3)print_r($arr)和var_dump($arr) 可以显示数组数据
(4)拆分字符串 explode(拆分条件,字符串)
$h = "1,2,3,4";
$arr = explode(",",$h);
var_dump($arr);
输出:array(4) { [0]=> string(1) "1" [1]=> string(1) "2" [2]=> string(1) "3" [3]=> string(1) "4" }
(5)sort函数,对索引数组进行升序排序。
本函数为数组中的单元赋予新的键名。原有的键名将被删除。
如果成功则返回 TRUE,否则返回 FALSE。
降序使用 rsort()
(6)删除数组中某个键值对
unset()函数允许删除数组中的某个键,要注意数组将不会重建索引
unset($arr[index]); 销毁指定元素
unset($arr); 清空整个数组
例子:
$h = "1,2,3,4";
$arr = explode(",",$h);
var_dump($arr); //输出 array(4) { [0]=> string(1) "1" [1]=> string(1) "2" [2]=> string(1) "3" [3]=> string(1) "4" }
echo '<br>';
unset($arr[2]);
var_dump($arr); //输出 array(3) { [0]=> string(1) "1" [1]=> string(1) "2" [3]=> string(1) "4" }
5、数组运算符
(1)联合, + 运算符把右边的数组元素(除去键值与左边数组相同的那些元素)附加到左边的数组后面,但重复的键值不会被覆盖。
例子:
$arr1 = array('f' => "apple",'b' => "banana");
$arr2 = array('c' => "coat",'b' => "banana",'e' => "evel");
$arr3 = $arr1 + $arr2;
var_dump($arr3);
(2)相等,$a == $b ,如果$a和$b具有相同的键值对,则返回true
(3)全等,$a === $b,如果$a和$b具有相同的键值对并且顺序相同,则为true
(4)不等,$a != $b,$a<>$b,如果$a和$b不相等,则为true
(5)不全等,$a !== $b,如果$a不全等于$b则为true
相关文章推荐
- 一个关于if else容易迷惑的问题
- PHP5.2.*防止Hash冲突拒绝服务攻击的Patch
- 深入理解PHP之匿名函数
- JSP/PHP基于Ajax的分页功能实现
- 关于PHP通过PDO用中文条件查询MySQL的问题。
- 什么是设计模式
- PHP数据库长连接mysql_pconnect的细节
- Php Installing An Expansion
- ruby 数组使用教程
- Ruby中的数组和散列表的使用详解
- C#实现AddRange为数组添加多个元素的方法
- C#比较二个数组并找出相同或不同元素的方法
- C#动态调整数组大小的方法
- PHP+Apache在Windows 9x下的安装和配置
- IIS 6 的 PHP 最佳配置方法
- 安装Apache和PHP的一些补充
- Linux Apache+MySQL+PHP
- 建立Apache+PHP+MySQL数据库驱动的动态网站
- 详解Lua中的数组概念知识