이 글은 주로 php7 함수의 새로운 기능, 선언, 반환 값 및 기타 새로운 기능을 소개합니다. 매우 훌륭하고 특정 참조 값이 있습니다. 필요한 친구가 참조할 수 있습니다.
... 연산자를 사용하여 변수를 정의합니다. -길이 매개변수 함수(PHP 5 >= 5.6.0, PHP 7)
이제... 연산자를 사용하여 func_get_args()에 의존하지 않고 가변 길이 매개변수 함수를 구현할 수 있습니다.
<?php function f($req, $opt = null, ...$params) { // $params 是一个包含了剩余参数的数组 printf('$req: %d; $opt: %d; number of params: %d'."\n", $req, $opt, count($params)); } f(1); f(1, 2); f(1, 2, 3); f(1, 2, 3, 4); f(1, 2, 3, 4, 5); ?>
위 루틴의 출력은 다음과 같습니다.
$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
매개변수 확장을 위해... 연산자를 사용하세요(PHP 5 >= 5.6.0, PHP 7)
함수를 호출할 때... 연산자를 사용하세요 배열과 반복 가능한 객체를 함수 인수로 확장합니다. Ruby와 같은 다른 프로그래밍 언어에서는 이를 연결 연산자라고 합니다.
<?php function add($a, $b, $c) { return $a + $b + $c; } $operators = [2, 3]; echo add(1, ...$operators); ?>
위 루틴은 다음을 출력합니다.
6
함수 사용 및 const 사용(PHP 5 >= 5.6.0, PHP 7)
use 연산자가 클래스에서 지원하도록 확장되었습니다. 외부 함수 가져오기 그리고 상수. 해당 구조는 use function과 use const입니다.
<?php namespace Name\Space { const FOO = 42; function f() { echo FUNCTION."\n"; } } namespace { use const Name\Space\FOO; use function Name\Space\f; echo FOO."\n"; f(); } ?>
위 루틴은 다음을 출력합니다:
42 Name\Space\f
debugInfo() (PHP 5 >= 5.6.0, PHP 7)
객체를 출력하기 위해 var_dump()를 사용할 때 debugInfo()를 추가하세요. 출력할 속성과 값을 제어하는 데 사용됩니다.
<?php class C { private $prop; public function construct($val) { $this->prop = $val; } public function debugInfo() { return [ 'propSquared' => $this->prop ** 2, ]; } } var_dump(new C(42)); ?>
위 루틴은 다음을 출력합니다.
object(C)#1 (1) { ["propSquared"]=> int(1764) }
스칼라 유형 선언(PHP 7)
스칼라 유형 선언 필수(기본값) 모드와 엄격 모드의 두 가지 모드가 있습니다. 이제 string, int, float 및 bool 유형 매개변수를 사용할 수 있습니다(강제 모드 또는 엄격 모드). 이는 PHP5에 도입된 다른 유형(클래스 이름, 인터페이스, 배열 및 콜백 유형)을 확장합니다.
<?php // Coercive mode function sumOfInts(int ...$ints) { return array_sum($ints); } var_dump(sumOfInts(2, '3', 4.1));
위 루틴은 다음을 출력합니다.
int(9)
엄격 모드를 사용하려면 선언 선언 지시문을 파일 맨 위에 배치해야 합니다. 이는 스칼라가 파일 기반으로 구성 가능하다고 엄격하게 선언됨을 의미합니다. 이 지시문은 매개변수의 유형 선언뿐만 아니라 함수의 반환 값 선언에도 영향을 미칩니다(반환 값 유형 선언, 내장 PHP 함수 및 확장에 로드된 PHP 함수 참조)
반환 값 유형 선언(PHP 7 )
PHP 7에는 반환 유형 선언에 대한 지원이 추가되었습니다. 매개변수 유형 선언과 유사하게 반환 유형 선언은 함수의 반환 값 유형을 지정합니다. 사용 가능한 유형은 매개변수 선언에서 사용 가능한 유형과 동일합니다.
<?php function arraysSum(array ...$arrays): array { return array_map(function(array $array): int { return array_sum($array); }, $arrays); } print_r(arraysSum([1,2,3], [4,5,6], [7,8,9]));
위 루틴은 다음을 출력합니다:
Array ( [0] => 6 [1] => 15 [2] => 24 )
null 병합 연산자(PHP 7)
일상적으로 삼항 표현식과 isset()을 동시에 사용하는 경우가 많기 때문에, null 병합 연산자(??)의 구문 설탕을 추가했습니다. 변수가 존재하고 NULL이 아니면 자체 값을 반환하고, 그렇지 않으면 두 번째 피연산자를 반환합니다.
<?php // Fetches the value of $_GET['user'] and returns 'nobody' // if it does not exist. $username = $_GET['user'] ?? 'nobody'; // This is equivalent to: $username = isset($_GET['user']) ? $_GET['user'] : 'nobody'; // Coalesces can be chained: this will return the first // defined value out of $_GET['user'], $_POST['user'], and // 'nobody'. $username = $_GET['user'] ?? $_POST['user'] ?? 'nobody'; ?>
우주선 연산자(결합 비교기)(PHP 7)
우주선 연산자는 두 표현식을 비교하는 데 사용됩니다. $a가 각각 $b보다 작거나 같거나 클 경우 -1, 0 또는 1을 반환합니다. 비교 원칙은 PHP의 일반 비교 규칙을 따릅니다.
<?php // Integers echo 1 <=> 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 ?>
define()을 통해 상수 배열 정의(PHP 7)
이제 Array 유형의 상수는 정의()를 통해 정의할 수 있습니다. PHP5.6에서는 const를 통해서만 정의할 수 있습니다.
<?php define('ANIMALS', [ 'dog', 'cat', 'bird' ]); echo ANIMALS[1]; // outputs "cat" ?>
관련 권장 사항:
PHP7에서 Opcode를 활성화하여 강력한 성능을 생성하는 방법에 대한 자세한 설명
위 내용은 php7 함수, 선언, 반환 값 등과 같은 새로운 기능 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!