The following are some new features of PHP 7.0 & 7.1 versions.
$foo = null; $bar = $foo ?? 123; // 相当于 $bar = isset($bar) ? $bar : 123
// 在严格模式下,传参类型不匹配会抛出错误 declare(strict_types=1); function fn(int $a) : int { echo $a; } fn(1.2);
Returns 0 when the two are equal;
The former is greater than the latter and returns 1;
The latter is greater than the former and returns -1;
var_dump($a <=> $b);
$a = 0; $b = "abc"; var_dump($a <=> $b); // 注意,字符串在与数字比较时会被当作 0;
function generator() { yield 1; yield 2; return "a"; } $generator = generator(); foreach ($generator as $val) { var_dump($val); } var_dump($generator->getReturn());
DefinitionWhen
$generator->getReturn()
is used without a return value, ## will be returned #null. Moreover, when the generator does not output completely, using
$generator->getReturn()will report an error.
function generator() { yield 1; yield 2; return "a"; } $generator = generator(); var_dump($generator->current()); var_dump($generator->next()); var_dump($generator->getReturn()); // 报错 var_dump($generator->current()); var_dump($generator->next());Copy after login
define('COLORS', ['red', 'blue', 'black']); echo COLORS[1]; // red
use some\namespace\{ClassA, ClassB, ClassC as C}; use function some\namespace\{fn_a, fn_b, fn_c}; use const some\namespace\{ConstA, ConstB, ConstC};
list($a, $b) = ["a", "b"];
JIT, just in time. Converts some instructions into machine code during runtime. There is a high performance improvement for computing-intensive applications.Optional parameter type
function(?string $name) { var_dump($name); } // 传参类型为 string 或 null
function(string $name = "default-name") { var_dump($name); }
[$a, $b] = ["a", "b"];
Use callable type to represent that the parameter type is a callable type (Use iterable type Limit the type of parameters passed to iterable types (arrays, class instances that implement Iterator or Traversable
interface);
Multiple exception type capturetry { } catch (OneException | AnotherException $e) { }
The above is the detailed content of Memo code sharing for some new features in PHP7.0 and 7.1. For more information, please follow other related articles on the PHP Chinese website!