PHP’s three dots (...
) can express different meanings on different occasions. The following are some common usages:
can Variable parameters
When declaring a function, you can use three dots to represent variable parameters (Variadic Parameters), also called parameter unpacking (Argument Unpacking):
function foo(...$args) { foreach ($args as $arg) { echo $arg, ' '; } } foo(1, 2, 3); // 输出:1 2 3
The function defined in this way can accept any number parameters and pass them to the function body as an array.
Array Unpacking
Use three dots in front of the array to expand the array (Array Unpacking) into a series of parameters, which can be used when calling functions or merging arrays:
$numbers = [1, 2, 3]; echo max(...$numbers); // 等同于 max(1, 2, 3) $fruits = ['apple', 'banana']; $food = [...$fruits, 'mango', 'orange']; print_r($food); // 输出:Array ( [0] => apple [1] => banana [2] => mango [3] => orange )
Used in this way, existing array elements can be inserted into a function or array without modifying the original array.
Object expansion
PHP 7.4 introduces a new feature: using three dots in front of the object can expand the public properties of the object into an array, for example:
class Person { public $name; public $age; public $gender; public function __construct($name, $age, $gender) { $this->name = $name; $this->age = $age; $this->gender = $gender; } } $person = new Person('Tom', 32, 'male'); $personArray = ['address' => 'Beijing', ...$person]; print_r($personArray); // 输出:Array ( [address] => Beijing [name] => Tom [age] => 32 [gender] => male )
This usage can easily convert the properties of the object into an array, which is more readable and reusable.
Summary:
Three dots serve as an operator and have different interpretations in different contexts, which makes PHP's syntax more flexible and easier to use. Learning and mastering the usage of three points can help us write code better.
The above is the detailed content of Three meanings of php.... For more information, please follow other related articles on the PHP Chinese website!