Hongmu Notes
Home Language Notes Detailed explanation of PHP ternary operator and if
Language Notes PHP

Detailed explanation of PHP ternary operator and if

Detailed explanation of PHP ternary operator and if

ternary operator

条件 ? 结果1 : 结果2 

Note: The position in front of the question mark is the condition for judgment. If the condition is met, the result is 1, and if it is not met, the result is 2.
This article compares and explains the ternary operator and if...else... in detail. I hope it will be helpful to everyone.

Today when I was revising my paper online, I came across a sentence that I couldn’t understand:

$if_summary = $row['IF_SUMMARY']==2?'是':'否';

Later, Baidu discovered that it was the ternary operator of PHP.

This sentence means that

if($row['IF_SUMMARY']==2){
$if_summary="是";
}else{
$if_summary="否";
}

The function of the ternary operator is consistent with the "if...else" process statement. It is written in one line, and the code is very concise and the execution efficiency is higher.

Proper use of the ternary operator in PHP programs can make scripts more concise and efficient.

Code format

(expr1) ? (expr2) : (expr3);

explain

If condition "expr1" is true, execute statement "expr2", otherwise execute "expr3".

To achieve the same function, if you use conditional process statements, you need to write multiple lines of code:

if(expr1) {
expr2;
} else {
expr3;
}

It can be seen that the goodness of the ternary operator mentioned above is not an exaggeration. However, in most cases we only use the ternary operator when the code is relatively simple, that is, when the execution statement is only a single statement.

Such as:

$a>$b ? print "a大于b" : print "a小于b";

In fact, the ternary operator can be extended to use. When the set condition is true or not, the execution statement can be more than one sentence. Try the following format:

(expr1) ? (expr2).(expr3) : (expr4).(expr5);

We can clearly see that multiple execution statements can be connected using string operators ("."), and each execution statement is surrounded by small angle brackets to indicate that it is an independent and complete execution statement.

After this expansion, its function is closer to the "if...else" process statement.

Nested use of ternary operators

At the same time, the ternary operator can also be used nested.

For example, when a is greater than b: if a is less than c, then x=c-a otherwise x=a-c;

Otherwise when a is less than b: if b is less than c, then x=c-b otherwise x=b-c:

$a>$b ? $x=($a<$c ? $c-$a : $a-$c) : $x=($b<$c ? $c-$b : $b-$c);

The readability of the nested ternary operator is not very good, and there may be problems with the maintenance of the code in the future. However, compared with process statements such as "if...else", in the above situation, it is indeed too concise, which is its attractiveness.

For those who like to be lazy and pursue code simplicity, using the ternary operator to replace the if process statement should be an excellent choice. Even if you don't need to consider any "element" other than the conditional sentence in the "ternary", using the ternary operator is still more concise than if statements.

The following statements are syntactically correct, they omit the second or third "element" in a small unquote manner:

$a>$b ? print "Yes" : "";

$a>$b ? '': print 'No';

Note

What should be noted is:

When using the ternary operator, it is recommended to use the print statement instead of the echo statement.

Pay attention to the understanding of the following series of statements:

$str = $_GET['abc'] ? 'wangjinbo' : 'wjb';

This cannot be understood as:

When $str is equal to $_GET['abc'], the assigned value is 'wangjinbo', otherwise the assigned value is 'wjb';

Because one: == should be used to judge equality;

Reason 2: The syntax of the ternary operator is as shown above: (expr1) ? (expr2) : (expr3). Obviously, the above binary and ternary 'wangjinbo' or 'wjb' cannot form a meaningful expression alone;

The correct understanding is:

$_GET['abc'] is a null value (that is, whether (false), ' ', null, 0, undifine in PHP are all equivalent to the Boolean value false). At this time, $str is assigned the value 'wjb', otherwise it is assigned the value 'wangjinbo';

Note:

When there is no condition in the IF statement condition, the content itself $_GET['abc'] is true and the condition is established. The value of str is 'wangjinbo', otherwise the value is 'wjb'; when there is no clear value of true, true means that there is a value, and false means that there is no value.

微信赞赏

WeChat

支付宝赞赏

Alipay

✍️ Author: Hong Mu

webmaster · Thanks for reading, stay tuned for more exciting content

Author homepage View home page →

Related articles

PHP ob function record

PHP ob function record Language Notes PHP

Usage of the following three functions ob_get_contents(); ob_end_clean(); ob_start(); You can use these functions to buffer local files and execute local script code. Use ob_start() to save the output code into the buffer, and the page will not be displayed; then use ob_get_contents to get the data in the buffer. o…
👁 141
PHP preg

PHP preg Language Notes PHP

The preg_match_all function is used to perform a global regular expression match. preg_match_all() Syntax int preg_match_all ( string $pattern , string $subject [, array &$matches [, int $flags = PREG…
👁 169
PHP cast type

PHP cast type Language Notes PHP PHP collection PHP and mysql

Get the data type 1. If you want to check the value and type of an expression, use var_dump(). 2. If you just want to get an easy-to-read type expression for debugging, use gettype(). 3. To check a certain type, do not use gettype(), but use the is_type() function. Converting Strings to Numbers When a string is evaluated as a number, the result is determined according to the following rules...
👁 232
Typecho index.php homepage template production common codes

Typecho index.php homepage template production common codes Language Notes PHP

Creating templates is not difficult at all; once you've written your HTML and CSS code, nesting templates becomes straightforward. You don't need to understand the internal structure of the tags—simply know how to use them, and you can quickly complete your templates. This article provides a brief introduction to how to use common tags, with the aim of helping you explore the world of templating. Let's start with the main file: when you open this file, the first thing you'll see is a comment: /** * This is a set of default settings for the Typecho system...
👁 269

Recommended reading

Resource website typecho001 template

Resource website typecho001 template Program Notes Typecho

typecho001 template template please do not modify the folder name of this template. The folder name is: typecho001 1.4 Fix the js output problem on the article page 1.3 Fix the error prompt when the plug-in is not installed Optimize the list page code output 1.2 Fix the comment function and add a custom homepage title 1.1 Fix the comment reply asymmetry function Add a separate title setting function on the homepage Add the website favicon.ico icon Add one...
👁 198
Modification of typecho paging style

Modification of typecho paging style Program Notes Typecho

Sir, times have changed! Typecho is currently the most perfect solution, because Baidu can only see the code of fixed thinking. The actual generated HTML code is breathtakingly clean and fully customized, including adding classes to the li element, adding classes to the a element, adding classes to the previous page and next page, and removing the li tags that come with typecho to express more. I can even add some text to the content inside...
👁 516
Typecho article page comment style modification

Typecho article page comment style modification Program Notes Typecho

When you need to use typecho for template development, the default comment style is ugly. Therefore, comments need to be re-output or styled. The default comment template file path is: comments.php Mainly used related variables<?php $comments->gravatar('40', ''); ?> //Avatar has two parameters, size,...
👁 387
Typecho's API for adding, deleting, modifying and querying databases

Typecho's API for adding, deleting, modifying and querying databases Program Notes Typecho

Typecho database provides a very easy-to-use API, which is not much different from the native SQL writing method. At the same time, it also handles common SQL security issues, such as SQL injection. From a practical perspective, this article introduces common scenarios for typecho to operate databases and related API usage. Table creation and deletion During the development process of Typecho plug-in, you often need to create your own table. Typecho_… mentioned above
👁 552
Summary of methods for calling popular comment articles and calling latest articles in Typecho

Summary of methods for calling popular comment articles and calling latest articles in Typecho Program Notes Typecho

Typecho articles call the Typecho program. When designing a theme, the sidebar sometimes needs to call popular articles or the latest articles. We can call it directly through the script at the specified location. In this article, we will organize this method of calling articles, which can be directly called and used in templates where needed in the future. In fact, designing a theme is just that. After the static template is completed, it is called directly. The latest article calls <?php $t…
👁 295
Typecho calls the list of classified articles

Typecho calls the list of classified articles Program Notes Typecho

The number after pageSize represents the number of called articles; the number after mid represents the called category ID; Tip: The method to obtain the Typecho category ID is to move the mouse over a certain category name. The number after mid= displayed in the browser status bar is the category ID. Edit the current typecho theme template and add the following code where you want to call a category. Method 1: widget...
👁 360