PHP中的操作符:
1. 算术
$a + $b
$a - $b
$a * $b
$a / $b 除以
$a % $b 取余
2. 字符串操作
$a = "my";
$b = " love";
$c = $a.$b; //my love
3. 赋值操作符
$a += 5; //等价于$a = $a + 5;
echo ++$a; //先$a自增 再打印
echo $a++; //先打印,再自增
4. 引用:别名
通常,变量赋值产生副本,然后再保存在内存的其他地方 $a = 5; $b = $a; $a 和 $b互不相关
使用引用避免产生副本
$a = 5;
$b = &$a;
$a = 7; // 这时候$a 和$b 都是7
如果unset($a); 不会改变$b的值,破坏$a和7保存在内存中的连接
5. 比较操作符:返回true or false
$a == $b 测试两个值是否相等 ,0 == '0' 返回true
$a === $b 测试恒等:相等且数据类型相同返回true 0===‘0’返回false
6.逻辑操作符
&& 逻辑与 (and也可,优先级较低)
|| 逻辑或 (or也可,优先级较低)
! 逻辑非
xor 异或
7. 位操作符
& 按位与
! 按位或
~ 按位非
^ 按位异或
<< 左位移 $a << $b 将$a左移$b位
>> 右位移
8. 其他操作符
, 逗号,分隔函数参数和其他列表项
new 和 -> 初始化类的实例和访问类的成员
? : 三元操作符 condition ? value if true : value if false
@ 错误抑制操作符,在任何表达式前面使用
$a = @(5 / 0); //若没有@将产生警告,使用了警告被抑制,不用写错误处理代码
执行操作符:一对` ` 反向单引号,和~是在同一个键盘位置,php将反向单引号之间的命令当作服务器端的命令行来执行,表达式的值就是命令执行结果
$out = `dir c:`;
echo "<pre>".$out."</pre>";
9. 数组操作符
[] 访问数组元素
+ 联合 $a + $b 返回包含了具有两个数组中的所有元素的数组
== 等价 具有相同的键值对
=== 恒等 具有相同的键值对且相同的顺序
!= 不等于 和 <>一样
!=== 不恒等
10. 类型操作符instanceof,在面向对象中使用
class MyClass{};
$myObject = new MyClass();
if( $myObject instanceof MyClass )
{
echo '';
}
关于print和echo:
都不是真正的函数,可当作操作符,都生成输出
print返回一个值,但比echo慢
测试和设置变量类型:
string gettype(mixed var); //返回值bool、integer、double、string、array、object、resource、unknown type
bool settype(mixed var, string type);
另外php还有好多检查类型的函数
is_array()
is_double()
is_int()
is_string()
is_bool()
is_object()
is_resource()
is_null()
is_scalar(); //检查是否是标量 int bool string double
is_numeric(); //检查是否是任何类型的数字或数字字符串
is_callable(); //检查变量是否是有效的函数名称
测试变量状态:
bool isset(mixed var); 如果变量存在返回true
void unset(mixed var); 销毁一个变量
bool empty(mixed var); 若变量为空返回true
变量的重解释:
int intval(mixed car);
float floatval(mixed var);
string strval(mixed var);