短标签的使用
//短标签的使用,echo时使用,一般是是视图模板中使用.以下两种写法相同
$name = '张三';
<?=$name?>
<?php echo $name; ?>
三元运算符简写 php5.3后增加
$page = '';
$page = $page ? $page : 1;
echo $page; //1
$page = $page ?: 1;
echo $page; //1
通过匿名函数实现回调 php5.3后增加
//例如数组中每个单元值修改
function test($arr, $callback){
foreach ($arr as $k => $v) {
$arr[$k] = $callback($v);
}
return $arr;
}
$arr = [1,2,3];
$array = test($arr,function ($v){
return $v+1;
});
print_r($array); //[2,3,4]
//数组声明,使用中括号,php5.4后增加
$arr = array(1,2,3);
$arr = [1,2,3];
//函数输出数组,php5.4增加
$arr = array(1,2,3);
$arr = [1,2,3];
//对象直接调用
class Dog {
public function bark() {
echo 'ww';
}
}
$dog = new Dog();
$dog->bark(); //ww
(new Dog())->bark(); //ww
trait萃取的使用,实际上是声明了一个类 php5.5后增加
trait Cat {
public function eat() {
echo '吃';
}
}
trait Bird {
public function fly()
{
echo '飞';
}
}
class SuperMan {
use Cat, Bird;
}
(new SuperMan())->eat();//吃
(new SuperMan())->fly();//飞
//empty函数
$a = 3;
echo empty($a-3); //5.5之前会报错,不能判断表达式
//关键词yield php5.5后增加
//yield不会将单个数据追加到数组,而是没生成一个数据,函数就循环输出一个
function getAll() {
for ($i = 0; $i < 5; $i++) {
yield $i;
}
}
foreach (getAll() as $k => $v) {
echo $v;
}
//常量的定义 php5.6const只用来定义类常量,php5.6之后可以再类外部使用,可以定义数组
const A = [1,2,3];
echo A[1];//2
//不定参数 php5.6后增加
function test2 ($a, ...$b) {
print_r($b);
}
test2(1,2,3,4,5); //输出为数组 [2,3,4,5]
//帮函数拆分参数
function test3($a,$b,$c) {
echo $a;
echo $b;
echo $c;
}
$argc = [2,3];
test3(1, ...$argc); //1,2,3
//三元运算符性特性 php7新增加
$page = isset($_GET['page']) ? $_GET['page'] : 1;
echo $page; //1
echo $_GET['page'] ?? 1; //1
//强类型支持,类型约束,传递的参数类型进行约束,返回值的类型进行约束
function test4(int $a, int $b) :int {
return $a + $b;
}
echo test4(4,7); //如果参数传递的是个字符串,将会直接报错
//匿名类的使用
echo (new class{
public $name = '张三';
})->name; //张三