Home>Article>Backend Development> Introduction to new features such as php7 functions, declarations, return values, etc.

Introduction to new features such as php7 functions, declarations, return values, etc.

伊谢尔伦
伊谢尔伦 Original
2018-05-25 10:44:19 4405browse

Use the... operator to define variable-length parameter functions (PHP 5 >= 5.6.0, PHP 7)

You can now use... . operator to implement variable-length parameter functions.

The above routine will output:

$req: 1; $opt: 0; number of params: 0
$req: 1; $opt: 2; number of params : 0
$req: 1; $opt: 2; number of params: 1
$req: 1; $opt: 2; number of params: 2
$req: 1; $opt: 2 ; number of params: 3

Use... operator for parameter expansion (PHP 5 >= 5.6.0, PHP 7)

When calling the function When using the... operator, arrays and traversable objects are expanded intofunction parameters. In otherprogramming languages, such as Ruby, this is called the concatenation operator.

The above routine will output:

6

use function and use const (PHP 5 >= 5.6.0, PHP 7)

The use operator has been extended to support importing external functions and constants into the class. The corresponding structures are use function and use const.

The above routine will output:

42

Name\Space\f

debugInfo() (PHP 5 > = 5.6.0, PHP 7)

Add debugInfo(), which can be used to control the attributes and values to be output when using var_dump() to output objects.

prop = $val; } public function debugInfo() { return [ 'propSquared' => $this->prop ** 2, ]; } } var_dump(new C(42)); ?>

The above routine will output:

object(C)#1 (1) { ["propSquared"]=> int(1764) }

Scalar type declaration (PHP 7)

There are two modes for scalar type declaration: Enforcement (default) and strict mode. The following type parameters are now available (either in forced or strict mode):String(string), integer (int), floating point number (float), and boolean (bool). They extend other types introduced in PHP5: class names, interfaces, arrays andcallback types.


      

The above routine will output:

int(9)

To use strict mode, a declare declaration directive must be placed at the top of the file. This means that scalars are strictly declared configurable on a file basis. This directive not only affects the type declaration of the parameters, but also affects the return valuedeclaration of thefunction (see return value type declaration, built-in PHP functions and PHP functions loaded in extensions)

Return value type declaration (PHP 7)

PHP 7 adds support for return type declaration. Similar to the parameter type declaration, the return type declaration specifies the type of the function's return value. The available types are the same as those available in the parameter declaration.


      

The above routine will output:

Array
(
[0] => 6
[1] => 15
[2] => 24
)

##null coalescing operator (PHP 7)

Due to the large number of simultaneous uses of ternary in daily use In the case of expressions and isset(), we add the syntax sugar of null coalescing operator (??). If the variable exists and is not NULL, it returns its own value, otherwise it returns its second operand.

Spaceship operator (combined comparison operator) (PHP 7)
##The spaceship operator is used to compare two expressions. It returns -1, 0 or 1 when $a is less than, equal to or greater than $b respectively. The principle of comparison follows PHP's regular comparison rules.

 1; // 0 echo 1 <=> 2; // -1 echo 2 <=> 1; // 1 // Floats echo 1.5 <=> 1.5; // 0 echo 1.5 <=> 2.5; // -1 echo 2.5 <=> 1.5; // 1 // Strings echo "a" <=> "a"; // 0 echo "a" <=> "b"; // -1 echo "b" <=> "a"; // 1 ?>

Defining constant arrays via define() (PHP 7)


Constants of type Array can now be defined via define(). In PHP5.6 it can only be defined via const.

The above is the detailed content of Introduction to new features such as php7 functions, declarations, return values, etc.. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn