Null 병합 할당이란 무엇입니까?PHP 7.4의 연산자
PHP 7.4 기능에 대한 비디오를 보고 이 새로운 기능을 보았습니다.??=
교환입니다.나는 이미 알고 있습니다.??
교환입니다.
이게 뭐가 달라요?
문서에서:
병합 동등 또는 ?=는 할당 연산자입니다.왼쪽 매개 변수가 null인 경우 오른쪽 매개 변수의 값을 왼쪽 매개 변수에 할당합니다.값이 null이 아니면 아무 것도 수행되지 않습니다.
예:
// The folloving lines are doing the same
$this->request->data['comments']['user_id'] = $this->request->data['comments']['user_id'] ?? 'value';
// Instead of repeating variables with long names, the equal coalesce operator is used
$this->request->data['comments']['user_id'] ??= 'value';
따라서 기본적으로 이전에 할당되지 않은 값을 할당하는 것은 간단한 방법입니다.
null 병합 할당 연산자는 null 병합 연산자의 결과를 할당하는 간단한 방법입니다.
공식 릴리스 노트의 예는 다음과 같습니다.
$array['key'] ??= computeDefault();
// is roughly equivalent to
if (!isset($array['key'])) {
$array['key'] = computeDefault();
}
Null 병합 할당 연산자 체인:
$a = null;
$b = null;
$c = 'c';
$a ??= $b ??= $c;
print $b; // c
print $a; // c
예제 문서:
$array['key'] ??= computeDefault();
// is roughly equivalent to
if (!isset($array['key'])) {
$array['key'] = computeDefault();
}
이를 통해 루프의 첫 번째 반복 중에 변수를 초기화할 수 있습니다.하지만 조심하세요!
$reverse_values = array();
$array = ['a','b','c']; // with [NULL, 'b', 'c'], $first_value === 'b'
foreach($array as $key => $value) {
$first_value ??= $value; // won't be overwritten on next iteration (unless 1st value is NULL!)
$counter ??= 0; // initialize counter
$counter++;
array_unshift($reverse_values,$value);
}
// $first_value === 'a', or 'b' if first value is NULL
// $counter === 3
// $reverse_values = array('c','b','a'), or array('c','b',NULL) if first value is null
첫 번째 값이 다음과 같은 경우NULL
,그리고나서$first_value
다음으로 초기화됩니다.NULL
그리고 다음 비-에 의해 덮어쓰게 됩니다.NULL
값. 배열에 많은 양이 있는 경우NULL
가치,$first_value
둘 중 하나로 끝날 것입니다.NULL
또는 첫 번째 비 -NULL
지난번 이후에NULL
그래서 이것은 끔찍한 생각인 것 같습니다.
저는 여전히 이것이 더 명확하기 때문에 이런 것을 하는 것을 선호하지만, 또한 그것이 작동하기 때문입니다.NULL
배열 값으로:
$reverse_values = array();
$array = ['a','b','c']; // with [NULL, 'b', 'c'], $first_value === NULL
$counter = 0;
foreach($array as $key => $value) {
$counter++;
if($counter === 1) $first_value = $value; // does work with NULL first value
array_unshift($reverse_values,$value);
}
대략 "$a defaults to $b"로 번역할 수 있습니다.
$page ??= 1; // If page is not specified, start at the beginning
$menu ??= "main"; // Default menu is the main menu
$name ??= "John Doe"; // Name not given --> use John Doe
PHP의 세계에서 오랫동안 기다려온 도구.
PHP 7.4 이전에는 다음과 같은 기능을 사용했습니다.
function defaultOf(&$var, $value) {
if(is_null($var)) $var=$value;
}
// Now the 3 statements above would look like:
defaultOf( $page, 1 );
defaultOf( $menu, "main" );
defaultOf( $name, "John Doe" );
(더 읽기 쉽기 때문에 지금도 사용하고 있습니다.
언급URL : https://stackoverflow.com/questions/59102708/what-is-null-coalescing-assignment-operator-in-php-7-4
'programing' 카테고리의 다른 글
mysql 쿼리 최적화 및 필드 값 조작 (0) | 2023.08.20 |
---|---|
현지화된 시스템에서 PowerShell 오류 출력을 영어로 강제 실행 (0) | 2023.08.20 |
jquery를 사용하여 텍스트 상자가 비활성화되었는지 여부 확인 (0) | 2023.08.20 |
Python Panda는 특정 열만 병합합니다. (0) | 2023.08.20 |
아약스 성공 함수 (0) | 2023.08.20 |