PHP 7 中的统一变量语法
在旧版本的 PHP 中,我们面临一个不一致的问题。例如:`${$first['name']}`。这种语法可能会造成混淆,或者可以说语法不一致。为了克服不一致的问题,PHP 7 添加了一种新的语法,称为“统一变量语法”。
统一变量语法从左到右计算变量。我们需要添加花括号才能使用统一变量语法。例如,
echo ${$first[‘name’]};统一变量语法允许运算符的组合,并且它也可能在某些表达式中破坏向后兼容性,在这些表达式中使用了旧的计算方法。
示例
<?php
$x = (function() {
return 20 - 10;
})
();
echo "$x
";
?>输出
上述 PHP 程序的输出将是
10
注意:上述程序将立即调用函数表达式。
统一变量语法使用现有语法的新的组合。例如,
$foo([‘bar’])();
统一变量语法可以取消引用函数返回的字符串中的字符。
[$obj, $obj1] [0]->pro;
在某些情况下,PHP 7 支持嵌套双冒号 (::),
$foo[‘bar’]::$baz;
嵌套方法/函数调用
我们可以使用嵌套方法和函数调用或任何可调用对象来加倍括号。
示例
foo()(); //return by a function callable $foo->bar()(); // return by an instance method Foo::bar()(); // static method $foo()(); // return by another callable
任意表达式取消引用
在 PHP 中,我们现在可以取消引用任何有效的表达式,包括带括号的表达式。例如,
(exp) [‘foo’] ; // It will access an array key (exp)->foo; // This will access the property (exp)->foo(); // It will call to a method etc.
示例
<?php
function emp() {
echo "This is emp()
";
};
function dept() {
echo "This is dept()
";
return emp;
};
function sub() {
echo "This is sub()
";
return dept;
};
sub();
echo "----------------
";
sub()();
echo "----------------
";
sub()()();
?>输出
上述程序的输出将是:
This is sub() ------------- This is sub() This is dept() ------------- This is sub() This is dept() This is emp()
广告
数据结构
网络
关系数据库管理系统 (RDBMS)
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP