Search code examples
phpconditional-statementsoperator-precedence

Is there a definitive name for the action of defining a variable inside a conditional statement?


I think the question is a rather simple one and applies not just to me but it applies to the entire PHP language.

This is VERY fundamental and it's not essential in learning PHP to know what this is called if it indeed has a name at all. But some people that, including me obviously, like to be able to understand these very fundamental questions.

I will use an example "if (conditional) statement" to illustrate the question.

if (!$result = mysqli_query($con, $sql)) {
    echo 'FAILED';
}

As you see here the result of the mysqli_query function is stored inside the $result variable while the function and the variable rest inside of a conditional statement.

That is my question, as always, thank you for reading and your answers or criticisms are both welcomed and appreciated.

Regards,
DeveloperDan


Solution

  • No specific name that I'm aware of, but it is described in the PHP Docs in the section on Expressions

    Quoting:

    PHP takes expressions much further, in the same way many other languages do. PHP is an expression-oriented language, in the sense that almost everything is an expression. Consider the example we've already dealt with, '$a = 5'. It's easy to see that there are two values involved here, the value of the integer constant '5', and the value of $a which is being updated to 5 as well. But the truth is that there's one additional value involved here, and that's the value of the assignment itself. The assignment itself evaluates to the assigned value, in this case 5. In practice, it means that '$a = 5', regardless of what it does, is an expression with the value 5. Thus, writing something like '$b = ($a = 5)' is like writing '$a = 5; $b = 5;' (a semicolon marks the end of a statement). Since assignments are parsed in a right to left order, you can also write '$b = $a = 5'.

    (emphasis is mine)

    "The assignment itself evaluates to the assigned value", which is why the assignment itself can be tested as an if condition