PHP教程(二)
0x00 PHP运算符
PHP的基本运算符的使用方法跟C语言基本一致,就不再赘述了,但PHP有一个比较运算符用较多
比较运算符
x==y//等于,如果x=y则返回true
x===y//绝对等于,如果x=y且x和y的数据类型相同则返回true
数组运算符
运算符 | 名称 | 描述 |
---|---|---|
x+y | 集合 | x和y的集合 |
x==y | 相等 | 如果x和y具有相同的键值对,则返回true |
x===y | 恒等 | 如果x和具有相同的键值对,且顺序相同类型相同,则返回true |
x!=y | 不相等 | 如果x不等于y,则返回true |
x<>y | 不相等 | 如果x不等于y,则返回true |
x!==y | 不恒等 | 如果x不恒等于y,则返回true |
<?php
$x = array("a" => "red", "b" => "green");
$y = array("c" => "blue", "d" => "yellow");
$z = $x + $y; // $x 和 $y 数组合并
var_dump($z);
var_dump($x == $y);
var_dump($x === $y);
var_dump($x != $y);
var_dump($x <> $y);
var_dump($x !== $y);
?>
运行结果:
array(4) { ["a"]=> string(3) "red" ["b"]=> string(5) "green" ["c"]=> string(4) "blue" ["d"]=> string(6) "yellow" }
bool(false)
bool(false)
bool(true)
bool(true)
bool(true)
三元运算符
(expr1)?(expr2):(expr3);
对 expr1 求值为 TRUE 时的值为 expr2,在 expr1 求值为 FALSE 时的值为 expr3。
自 PHP 5.3 起,可以省略三元运算符中间那部分。表达式 expr1 ?: expr3 在 expr1 求值为 TRUE 时返回 expr1,否则返回 expr3。
<?php
$test = '123';
// 普通写法
$username = isset($test) ? $test : 'nobody';
echo $username, PHP_EOL;
// PHP 5.3+ 版本写法
$username = $test ?: 'nobody';
echo $username, PHP_EOL;
?>
组合比较符
PHP7及以上版本支持组合比较符,当比较符两侧相等时返回0,当比较符左侧的值小于右侧的值时返回-1,否则返回1
<?php
// 整型
echo 1 <=> 1; // 0
echo 1 <=> 2; // -1
echo 2 <=> 1; // 1
// 浮点型
echo 1.5 <=> 1.5; // 0
echo 1.5 <=> 2.5; // -1
echo 2.5 <=> 1.5; // 1
// 字符串
echo "a" <=> "a"; // 0
echo "a" <=> "b"; // -1
echo "b" <=> "a"; // 1
?>
0x01 PHP条件语句
if else
if (条件)
{
条件成立时执行的代码;
}
else
{
条件不成立时执行的代码;
}
<?php
$t=date("H");
if ($t<"20")
{
echo "Have a good day!";
}
else
{
echo "Have a good night!";
}
?>
if elseif else
if (条件)
{
if 条件成立时执行的代码;
}
elseif (条件)//elseif也可以写成else if,两者作用效果完全相同
{
elseif 条件成立时执行的代码;
}
else
{
条件不成立时执行的代码;
}
<?php
$t=date("H");
if ($t<"10")
{
echo "Have a good morning!";
}
elseif ($t<"20")
{
echo "Have a good day!";
}
else
{
echo "Have a good night!";
}
?>
Switch语句
<?php
switch (n)
{
case label1:
如果 n=label1,此处代码将执行;
break;//break作用极大,划重点!!!
case label2:
如果 n=label2,此处代码将执行;
break;
default:
如果 n 既不等于 label1 也不等于 label2,此处代码将执行;
}
?>
0x02 PHP数组
在 PHP 中,array() 函数用于创建数组:
array();
- 数值数组 - 带有数字 ID 键的数组
- 关联数组 - 带有指定的键的数组,每个键关联一个值
- 多维数组 - 包含一个或多个数组的数组
$cars=array("Volvo","BMW","Toyota");
echo "I like " . $cars[0] . ", " . $cars[1] . " and " . $cars[2] . ".";.
获取数组的长度函数-count()
$test=array("1","2","3","4");
echo count($test)
PHP关联数组
使用关联数组可以自行指定数组的键值对
<?php
$age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");
echo "Peter is " . $age['Peter'] . " years old.";
?>
//创建关联数组的方式一
$age['Peter']="35";
$age['Ben']="37";
$age['Joe']="43";
//创建关联数组的方式二
$age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");
遍历关联数组的方式
用foreach循环进行遍历
<?php
$age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");//声明关联数组
foreach($age as $x=>$x_value)
{
echo "Key=" . $x . ", Value=" . $x_value;
echo "<br>";
}
?>
0x04 PHP数组排序
排序函数
- sort() - 对数组进行升序排列
- rsort() - 对数组进行降序排列
- asort() - 根据关联数组的值,对数组进行升序排列
- ksort() - 根据关联数组的键,对数组进行升序排列
- arsort() - 根据关联数组的值,对数组进行降序排列
- krsort() - 根据关联数组的键,对数组进行降序排列