PHP语言标记
- 以
<?php
开始?>
结束标记是标准风格,这是PHP
推荐使用的标记风格。
- 以
<script language="php">
开始和</script>
结束是长风格标记,这种标记最长,总是可用的,但我们并不常用。
- 以
<?
开始和以?>
结束标记是简短风格的标记,是最简单的,但是系统管理员偶尔会禁用掉它,因为它会干扰XML
文档的声明。只用通过php.ini
配置文件中的指令short_open_tag
打开后就可以使用。
- 以
<%
开始和以%>
结束标记是ASP
风格的标记,可以在php.ini
配置文件设定中启用了asp_tags
选项就可以使用它(默认是禁用的),习惯了ASP
风格的可以使用它。
PHP程序注释
PHP支持C、C++和Shell脚本风格的注释,如下:
1 2 3
| //... ... 单行注释 /* ... ... */ 多行注释 (注意:不能嵌套) # ... ... 脚本注释
|
PHP中的运算符
运算符是可以通过给出的一或多个值(用编程行话来说,表达式)来产生另一个值(因而整个结构成为一个表达式)的东西。所以可以认为函数或任何会返回一个值(例如 print)的结构是运算符,而那些没有返回值的(例如 echo)是别的东西。
有三种类型的运算符:
- 一元运算符:只运算一个值,例如
!
(取反运算符)或 ++
(加一运算符)。
- 二元运算符:有两个操作数,PHP支持的大多数运算符都是这种。
- 三元运算符:
? :
。它应该被用来根据一个表达式在另两个表达式中选择一个,而不是用来在两个语句或者程序路线中选择。把整个三元表达式放在扩号里是个很好的主意。
算术运算符
运算符 |
意义 |
示例 |
结果 |
+ |
加法运算 |
$a+$b |
$a+$b的和 |
- |
减法/取负运算 |
$a-$b |
$a和$b的差 |
* |
乘法运算 |
$a*$b |
$a和$b的积 |
/ |
除法运算 |
$a/$b |
$a和$b的商 |
% |
求余运算符(取模运算) |
$a%$b |
$a和$b的余数 |
++ |
累加1 |
$a++或++$a |
$a的值加1 |
-- |
递减1 |
$a--或--$a |
$a的值减1 |
字符串运算符
有两个字符串运算符:
.
连接运算符:返回其左右参数连接后的字符串
.=
连接赋值运算符:将右边参数附加到左边的参数1 2 3 4 5
| $a = "Hello "; $b = $a . “World!”; // 现在$b的值: Hello World!
$a = "Hello "; $a .= “World!”; // 现在$a的值: Hello World!
|
赋值运算符
基本的赋值运算符是=
。一开始可能会以为它是“等于”,其实不是的。它实际上意味着把右边表达式的值赋给左边的运算数。
运算符 |
意义 |
示例 |
= |
将一个值或表达式的结果赋给变量 |
$x=3 |
+= |
将变量与所赋的值相加后的结果赋给该变量 |
$x+=3等价于$x=$x+3 |
-= |
将变量与所赋的值相减后的结果赋给该变量 |
$x-=3等价于$x=$x-3 |
*= |
将变量与所赋的值相乘后的结果赋给该变量 |
$x*=3等价于$x=$x*3 |
/= |
将变量与所赋的值相除后的结果赋给该变量 |
$x/=3等价于$x=$x/3 |
%= |
将变量与所赋的值求模后的结果赋给该变量 |
$x%=3等价于$x=$x%3 |
.= |
将变量与所赋的值相连后的结果赋给该变量 |
$x.=”H”等价于$x=$x.“H” |
比较运算符
运算符 |
描述 |
说明 |
示例 |
> |
大于 |
当左边大于右边时返回true,否则返回false |
$a>$b |
< |
小于 |
当左边小于右边时返回true,否则返回false |
$a<$b |
>= |
大于等于 |
当左边大于等于右边时返回true,否则false |
$a>=$b |
<= |
小于等于 |
当左边小于等于右边时返回true,否则false |
$a<=$b |
== |
等于 |
两边操作数的值相等时返回true,否则false |
$a==$b |
=== |
全等于 |
两边值相等并且类型相等返回true,否则false |
$a===$b |
<>或!= |
不等于 |
两边值不等时返回true,否则返回false |
$a<>$b 或 $a!=$b |
!== |
非全等于 |
两边值与类型都相同时返回false,否则true |
$a!==$b |
1 2 3 4
| var_dump(9 > 6); //如果 9大于6 它就返回true 否则就返回false var_dump(9 === '9') // 全等于 一定要两种都相同 第一种就是值相同 第二种就是类型相同
|
逻辑运算符
运算符 |
描述 |
说明 |
示例 |
and或&& |
逻辑与 |
当两边操作数都为true时,返回true,否则返回false |
$a and $b 或 $a && $b |
or或|| |
逻辑或 |
当两边操作数都为false时,返回false,否则返回true |
$a or $b 或 $a || $b |
not或! |
逻辑非 |
当操作数为true时返回false,否则返回true |
not $b 或 !$b |
xor |
逻辑异或 |
当两边操作数只有一个为true时,返回true,否则返回false |
$a xor $b |
1 2 3 4 5 6 7 8
| var_dump(true && false); //判断两边是否为真 如果为真那么就返回true 否则就返回false var_dump(true || false); //只要有一方为真 那么都为真 都为false时候就为 false var_dump(!false); //取反 var_dump(true xor false); //逻辑异或
|
位运算符
运算符 |
描述 |
说明 |
示例 |
& |
按位与 |
只有参与运算的两位都为1时,运算结果才为1,否则为0. |
$a & $b |
| |
按位或 |
只有参与运算的两位都为0时,运算结果才为0,否则为1. |
$a | $b |
^ |
按位异或 |
只有参与运算的两位不同,运算结果才为1,否则为0. |
^$b |
~ |
按位非 |
将用二进制表示的操作数中的1变成0,0变成1. |
~$a |
<< |
左移 |
将左边的操作数在内存中的二进制数据右移右边操作数指定的位数,右边移空的部分补上0 |
$a<<$b |
>> |
右移 |
将左边的操作数在内存中的二进制数据左移右边操作数指定的位数,左边移空的部分补上0 |
$a>>$b |
其他运算符
运算符 |
描述 |
示例 |
? : |
三元运算符,可以提供简单的逻辑判断。 |
$a<$b?$c=1:$c=0 |
`` |
反引号(``)是执行运算符,PHP将尝试将反引号中的内容作外壳命令来执行,并将其输入信息返回 |
$a=`ls -al` |
@ |
错误控制运算符,当将其放置在一个PHP表达式之前,该表达式可能产生的任何错误信息都被忽略掉。 |
@表达式 |
=> |
数组下标指定符号,通过此符号指定数组的键与值。 |
键=>值 |
-> |
对象成员访问符号,访问对象中的成员属性或成员方法。 |
对象->成员 |
instanceof |
类型运算符,用来测定一个给定的对象是否来自指定的对象类。 |
对象instanceof类名 |
1 2 3 4 5 6
| var_dump(false ? '1' : '2'); $a=`ls -al` var_dump(@$_GET['id']); $info = array('key'=>'1'); $info = new Object(); $info->one();
|
运算符的优先级
优先级 |
结合方向 |
运算符 |
附加信息 |
1 |
无结合 |
clone、new |
clone 和 new |
2 |
从右向左 |
** |
算术运算符 |
3 |
从右向左 |
++、–、~、(int)、(float)、(string)、(array)、(object)、(bool)、@ |
类型、递增/递减、错误控制 |
4 |
无结合 |
instanceof |
类型 |
5 |
从右向左 |
! |
逻辑运算符 |
6 |
从左向右 |
*、/、% |
算术运算符 |
7 |
从左向右 |
+、-、. |
算术运算符和字符串运算符 |
8 |
从左向右 |
<<、>> |
位运算符 |
9 |
无结合 |
<、<=、>、>= |
比较运算符 |
10 |
无结合 |
==、!=、===、!==、<>、<=> |
比较运算符 |
11 |
从左向右 |
& |
位运算符和引用 |
12 |
从左向右 |
^ |
位运算符 |
13 |
从左向右 |
| |
位运算符 |
14 |
从左向右 |
&& |
逻辑运算符 |
15 |
从左向右 |
|| |
逻辑运算符 |
16 |
从右向左 |
?? |
null 合并运算符 |
17 |
从左向右 |
? : |
三元运算符 |
18 |
从右向左 |
=、+=、-=、*=、**=、/=、.=、%=、&=、|=、^=、<<=、>>= |
赋值运算符 |
19 |
从左向右 |
and |
逻辑运算符 |
20 |
从左向右 |
xor |
逻辑运算符 |
21 |
从左向右 |
or |
逻辑运算符 |
表达式
- 表达式是
PHP
最重要的基石。在 PHP
中,几乎所写的任何东西都是一个表达式。简单但却最精确的定义一个表达式的方式就是任何有值的东西。
- 最基本的表达式形式是常量和变量。当键入
$a = 5
。
- 稍微复杂的表达式例子就是函数。
- 其他还有运算符与操作数构成的也成表达式。如:比较表达式
$a>5
、$a==5
。
可变变量
有时候使用可变变量名是很方便的。就是说,一个可变变量获取了一个普通变量的值作为这个可变变量的变量名。 例如:
1 2 3 4
| $a = 'hello'; //普通变量 $$a = 'world'; //可变变量 echo "$a ${$a}"; //输出:hello world echo "$a $hello"; //输出:hello world
|
变量的引用赋值
- 引用操作符
&
可以在关联赋值中使用,就像一个别名,使得变量都指向了内存的相同地址。
- 通过
unset($a)
重置变量与内存的关联1 2 3 4 5
| $a=5; $b=&$a; echo $b; //输出5 $a=7; echo $b; //输出7
|