PHP Null 병합이란 무엇입니까? 무엇을, 어떻게 사용하나요? 우리는 이번 단원에서 이것들을 배울 것입니다.

PHP Null Coalescing 연산자는 PHP 7에서 도입되었습니다. PHP Null Coalescing 연산자를 사용하면 조건부로 데이터를 할당할 수 있습니다. 첫 번째 피연산자가 존재하고 null이 아니면 첫 번째 피연산자를 반환하고, 그렇지 않으면 두 번째 피연산자를 반환합니다.

PHP Null 병합 예

// Örnek 1: 
echo $name = $_POST['name'] ?? 'nobody';
// Çıktı: nobody
// Örnek 1.1
if (isset($_POST['name'])) {
    echo $name = $_POST['name'];
} else {
    echo $name = 'nobody';
}
// Çıktı: nobody
// Örnek 1.2
echo $name = isset($_POST['name']) ? $_POST['name'] : 'nobody';
// Çıktı: nobody

예제 1에서는 name이라는 포스팅 데이터가 없었기 때문에 $name 변수에 none이라는 값을 할당하여 출력했습니다. 예제 1은 PHP Null Coalescing 연산자를 사용한 예제 1.1과 1.2의 단축 버전입니다. 둘 다 동일한 결과를 반환하고 동일한 의미를 전달합니다.

// Örnek 2
$first_name = 'Onur';
$last_name = null;
echo ($first_name ?? 'Ad Yok') . ' ' . ($last_name ?? 'Soyad Yok');?> 
// Çıktı: Onur Soyad Yok

예제 2에서는 $first_name 변수에 데이터가 있으므로 첫 번째 조건에서 변수를 반환했습니다. 그러나 $last_name 변수가 null이었으므로 두 번째 조건에서는 두 번째 피연산자를 반환하고 'No Surname'이라는 문장을 출력했습니다.

PHP Null 병합 연산자 연결

PHP Null Coalescing 연산자를 연결하여 사용할 수 있습니다.

// Örnek 3
echo $name = $_GET['name'] ?? $_POST['name'] ?? 'nobody';
// Çıktı: nobody
// Örnek 3.1
if (isset($_GET['name'])) {
    echo $name = $_GET['name'];
} elseif (isset($_POST['name'])) {
    echo $name = $_POST['name'];
} else {
    echo $name = 'nobody';
}
// Çıktı: nobody

예제 3에서 PHP는 $_GET['name'] 데이터를 $name 변수에 할당하고 $_GET['name']이 정의된 경우 이를 인쇄합니다. 정의되지 않은 경우 $_POST'name'] 변수를 확인하고 $_POST'name']이 정의되어 있으면 버리고 인쇄하고, 그렇지 않으면 'nobody' 데이터를 버리고 인쇄합니다. 예제 3.1은 예제 3과 동일한 결과를 반환하며 동일한 의미를 갖습니다. 예제 3.1은 if-elseif-else 조건문으로 코딩된 예제 3의 더 긴 버전입니다. 예제 3은 PHP Null Coalescing으로 코딩된 짧은 버전입니다.