foreach三元运算php,「php化整为零系列」八、语法优化

4076b6910e2f

源码地址:https://github.com/wilfordw/phpTutorial

该系列我只写我的理解,非官方解释,如不够专业请见谅

随着版本更新PHP语法也会有一定的优化让代码更简洁,这里就整理一些随着版本升级带来的语法优化 ->有部分优化需要php5.6以上

const

//旧风格define('constVar','Value');

const constVar = 'Value';

//不适用于运行时才能求值的表达式

//const constVar = 2 * 617;

//但允许使用之前定义的常量进行计算

const A = 2;

const B = A + 1;

class C

{

const STR = "hello";

const STR2 = self::STR." world";

}

//允许常量作为函数参数默认值

function func($arg = C::STR2){

echo $arg;

}

func();

//hello world

?>

数组简写

// 原来的数组写法

$arr = array("key" => "value", "key2" => "value2");

// 简写形式

$arr = ["key" => "value", "key2" => "value2"];

可变函数参数优化

//可变函数参数代替func_get_args()

function add(...$args)

{

$result = 0;

foreach($args as $arg)

$result += $arg;

echo $result;

}

//可以在调用函数时,把数组展开为函数参数

$arr = [2,3];

add(1,...$arr);

三元运算符简写

//三元运算符的简写形式

$a = 'A';

echo $a ?: "No Value";//A

类名通过::class可以获取

//类名通过::class可以获取

namespace Name\Space;

class ClassName {}

echo ClassName::class;//Name\Space\ClassName

非变量array和string也能支持下标获取

echo array(1, 2, 3)[0];//1

echo [1, 2, 3][0]; //1

echo "foobar"[2];//o

用foreach+list简化二位数组的迭代

$array = [

[1, 2],

[3, 4],

];

foreach ($array as list($a, $b)) {

echo "A: $a; B: $b\n";//A: 1; B: 2 A: 3; B: 4

}

yield

用yield 返回一个迭代,注意返回的是一个迭代而不是直接就是一个数组!

function number10()

{

for($i = 1; $i <= 10; $i += 1)

yield $i;

}

foreach (number10() as $number) {

echo "$number ";//1 2 3 4 5 6 7 8 9 10

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值