Home  >  Article  >  Backend Development  >  A simple comparison of ternary operator and Null coalescing operator in PHP

A simple comparison of ternary operator and Null coalescing operator in PHP

青灯夜游
青灯夜游Original
2019-02-01 16:07:593350browse

In PHP, the ternary operator (?:) and the Null coalescing operator (??) are used similarly, so what are the differences between them? The following article will introduce you to the ternary operator and the Null coalescing operator. I hope it will be helpful to you.

A simple comparison of ternary operator and Null coalescing operator in PHP

##Ternary operator

The ternary operator is a conditional operator. Helps reduce the number of lines in coding when performing comparisons and conditions. It's an alternative to using if else and nested if else statements, and the order of execution is from left to right; it's definitely the best time-saving option. [Video tutorial recommendation:

PHP tutorial]

Basic syntax:

(条件)?(声明1):(声明2);

In the ternary operator, if the conditional statement is true, then Statement 1 will be executed, otherwise statement 2 will be executed.

Example:

<?php 
header("content-type:text/html;charset=utf-8");  
$num = 21; 
print($num."是");
print ($num % 2 == 0) ? "偶数" : "奇数"; 
?>

Equivalent to:

<?php 
header("content-type:text/html;charset=utf-8");  
$num = 21; 
if($num % 2 == 0){
echo $num."是偶数";
}
else{
echo $num."是奇数";
}
?>

Output:

A simple comparison of ternary operator and Null coalescing operator in PHP

Null coalescing operator

Null coalescing operator is used to check whether a given variable is a null value and returns a non-null value from a custom value pair NULL value. The Null coalescing operator is mainly used to prevent object functions from returning NULL values ​​instead of returning the default optimized values. It is used to avoid exceptions and compiler errors.

The execution order is from right to left; when executing, the right operand (non-null) will be used as the return value. If it is null, the left operand will be used as the return value. It helps improve the readability of source code.

Basic syntax:

(条件)?(声明1)?(声明2);

Replace with if statement:

// 使用isset()函数
// 注意条件不为空
if ( isset(条件) ) {   
    return 声明1;
} else {
    return 声明2;
}

Example:

<?php
$num = 10; 
print ($num) ?? "NULL"; 
?>

Output:


A simple comparison of ternary operator and Null coalescing operator in PHP

Difference between ternary operator and Null coalescing operator:

● The ternary operator is left associative; and the Null coalescing operator is right associative.

● The ternary operator checks whether the value is true; and the Null coalescing operator checks whether the value is Null.

● If you want to perform more iterations, the Null coalescing operator is found to be faster than the ternary operator.

● The Null coalescing operator can provide better readability.

The above is the entire content of this article, I hope it will be helpful to everyone's study. For more exciting content, you can pay attention to the relevant tutorial columns of the PHP Chinese website! ! !

The above is the detailed content of A simple comparison of ternary operator and Null coalescing operator in PHP. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn