-
<?=$i?>
直接打印$i
的值// 相当于 <?php echo $i; ?>
-
注释
/* 这里是注释内容 */ // 这里是注释内容 # 这里是注释内容 (UNIX风格注释)
var_dump($a);
// 显示变量的信息(可以显示数据类型)-
数据类型(php是弱数据类型)
类型和变量的关系
类型是抽象的,变量是具体的,一个变量总是属于某个类型- 基本数据类型
整型 int
浮点型 float/double (php中float和double不区分)
布尔型 bool
字符型 string - 复合数据类型
数组 array
对象 object - 特殊数据类型
空值 NULL
资源 resource
- 基本数据类型
NULL
$a;
echo $a; // 这里会报个notice,但是程序会继续执行
var_dump($a); // NULL (没有分配内存空间)
php不支持无符号整数,即php的整数都是有符号的
一个整数(Int型),一般占用4个字节(和平台有关),一个字节占8bit
PHP_INT_SIZE
显示当前机器Int数据所占字节数
PHP_INT_MAX
的值为(假设当前平台的整型占4个字节)1*231-1(类似OC中的MAXFLOAT
)
当给Int型数据的值超出PHP_INT_MAX
的范围时,将会被解为float
类型布尔值false (false不区分大小写,falsE也表示false)
false、0、0.0、"0"、""、不包括的任何元素的数组、不包括任何成员的对象、NULL都可以表示false浮点数的精度是14 (从左边开始,第一个非0数开始计算精度)
eg:
$a = 567.9999; // 567.9999
$b = 789.8812345678543; // 789.88123456785
$c = 0.00000007777777777; // 0.00000007777777777
- 字符串
一个字符占用一个字节。例:$a = "hello";
占用5个字节
当一个变量包含在""
中时,会输出变量的值,而包含在''
之中时,会输出其字符本身。例:
$i = "hello";
echo "$i"; // hello
echo '$i'; // $i
- 算数运算符
$a = 7/3;
echo $a; // 2.3333333333333 (精度为14)
- 比较运算符
$a == $b; // $a等于$b
$a === $b; // $a等于$b,并且它们的类型也相同(即完全相等)
$a != $b; // $a不等于$b(即只有值不相等才为真)
$a !== $b; // $a不等于$b,或者它们的类型不同
// 例:
$a = 2; $b = 2.0; // $a == $b 真;$a === $b 假
$a = 3; $b = 2.0; // $a != $b 真
$a = 2; $b = 2.0; // $a != $b 假;$a !== $b 真
- 逻辑运算符
&&
/and
并且
||
/or
或者
!
非
xor
逻辑异或
注意
&&
和and
虽然都表示并且,但是它们的优先级是不一样的。&&
的优先级高于=
;而=
的优先级高于and
。||
和or
同样例:
$a = false || true; // true
$b = false or true; // false
$x xor $y // 表示$a只要和$b不相同,且只要有一个为真,结果就为真
- 字符串运算符(
.
)
$a = "hello, world";
$b = " okok";
$c = $a.$b; // hello, world okok
// 如果$a和$b不是字符串,通过 . 连接时,会先转为字符串然后拼接起来
- 类型运算符(
instanceof
)
instanceof
用于确定一个php变量是否属于某一类class (类似OC中的 isKindOfClass)。返回的是一个bool值
<?php
class MyClass{};
class NotMyClass{};
$a = new MyClass;
var_dump($a instanceof MyClass); // bool(true)
var_dump($a instanceof NotMyClass); // bool(false)
?>
- 优先级 (这里只说
前++
和后++
的优先级)
$a = 3;
$b = ++$a*3; // 12
$c = $a++*3; // 9
在php中,用于判断的
else if
可以连起来elseif
使用php中
switch
的用法总结
可以使用的数据类型有 整数、小数、字符串、bool、NULL
switch
内部执行原理 首先按照case
顺序进行逐一匹配,如果一个都没有匹配到,则执行default
语句,直到遇到break
,才退出switch
,否则,从default
继续向下顺序执行
// 例:
$i = 11;
switch ($i) {
case 10:
echo "10";
default :
echo "default";
case 9:
echo "9";
break;
}
// default9
-
if
和switch
的区别
if
经常是对某个范围(区间)的判断 (当然if
也可判断某个点)
switch
常常是对某个点(季节、上下等)的判断 (switch
当然也可以判断范围)