> 백엔드 개발 > PHP 튜토리얼 > php7의 새로운 기능 사용에 대한 자세한 설명

php7의 새로운 기능 사용에 대한 자세한 설명

php中世界最好的语言
풀어 주다: 2023-03-28 09:22:01
원래의
2230명이 탐색했습니다.

이번에는 php7의 새로운 기능을 사용하는 방법에 대해 자세히 설명하겠습니다. php7의 새로운 기능을 사용할 때 주의사항은 무엇인가요?

... 연산자를 사용하여 가변 길이 매개변수 함수 정의(PHP 5 >= 5.6.0, PHP 7)

이제 ... 연산자를 사용하여 func_get_args에 의존하지 않고 가변 길이 매개변수 함수를 구현할 수 있습니다. ().

<?php
function f($req, $opt = null, ...$params) {
 // $params 是一个包含了剩余参数的数组
 printf(&#39;$req: %d; $opt: %d; number of params: %d&#39;."\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);
?>
로그인 후 복사

위 루틴은 다음을 출력합니다:

$opt: 0; 매개변수 수: 0
$req: 1; $opt: 2; opt: 2; 매개변수 수: 1
$req: 1; $opt: 2; 매개변수 수: 2
$req: 1; $opt: 2; 사용... 연산자 확장 (PHP 5 >= 5.6.0, PHP 7)

함수를 호출할 때... 연산자를 사용하여 배열과 탐색 가능한 객체를
함수 매개변수

로 확장하세요. Ruby와 같은 다른

프로그래밍 언어

에서는 이를 연결 연산자라고 합니다.

위 루틴은 다음을 출력합니다:

6

use function and use 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

NameSpacef

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, &#39;3&#39;, 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[&#39;user&#39;] and returns &#39;nobody&#39;
// if it does not exist.
$username = $_GET[&#39;user&#39;] ?? &#39;nobody&#39;;
// This is equivalent to:
$username = isset($_GET[&#39;user&#39;]) ? $_GET[&#39;user&#39;] : &#39;nobody&#39;;
 
// Coalesces can be chained: this will return the first
// defined value out of $_GET[&#39;user&#39;], $_POST[&#39;user&#39;], and
// &#39;nobody&#39;.
$username = $_GET[&#39;user&#39;] ?? $_POST[&#39;user&#39;] ?? &#39;nobody&#39;;
?>
로그인 후 복사
우주선 연산자(결합 비교 연산자)(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)

이제 배열 유형의 상수는 정의()를 통해 정의할 수 있습니다. PHP5.6에서는 const를 통해서만 정의할 수 있습니다.

<?php
define(&#39;ANIMALS&#39;, [
 &#39;dog&#39;,
 &#39;cat&#39;,
 &#39;bird&#39;
]);
echo ANIMALS[1]; // outputs "cat"
?>
로그인 후 복사
이 기사의 사례를 읽으신 후 방법을 마스터하셨다고 생각합니다. 더 흥미로운 정보를 보려면 PHP 중국어 웹사이트의 다른 관련 기사를 주목하세요! 추천 도서:

PHP에서 ADODB 트랜잭션 처리를 구현하는 방법

Thinkphp5+uploadify를 사용하여 파일 업로드를 구현하는 방법

위 내용은 php7의 새로운 기능 사용에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿