Я использую PHP 7.3.6 на своем ноутбуке, который работает под управлением 64-разрядной операционной системы Windows 10 Home Single Language.
Я установил последнюю версию установщика XAMPP на свой ноутбук, на котором установлены Apache / 2.4.39 (Win64) и PHP 7.3.6 strong >
Сегодня я наткнулся на следующий пример кода из Руководство по PHP:
<?php
echo $some_var ? 'true': 'false'; // changing the statement around
?>
Насколько мне известно, и согласно следующему тексту из Руководство по PHP:
Выражение (expr1)? (expr2): (expr3) оценивается как expr2, если expr1 оценивается как TRUE, и expr3, если expr1 оценивается как FALSE.
Также хорошо известно, что оператор echo
в PHP не возвращает никакого значения.
Итак, в примере кода, упомянутом выше, также оператор echo
не должен возвращать никакого значения.
Итак, мой вопрос заключается в том, что, поскольку оператор echo
никогда не возвращает никакого значения, как тернарный оператор узнает, что expr1(i.e. the statement echo $some_var)
был оценен как истина или ложь, и, соответственно, выводит результат как true
или false
?
echo
- это не встроенная функция в PHP, это языковая конструкция. Я сомневаюсь, что функциональность тернарного оператора зависит исключительно от значения expr1. Затем, как с помощью оператораecho
было определено, что независимо от того, оценивается ли expr1 какtrue
илиfalse
как эхо, никогда не возвращает никакого значения? - person PHPGeek   schedule 03.07.2019echo
оценивается тернарным выражением. Это$some_var
. Он проверяет, является ли этоtrue
илиfalse
, и возвращает строку'True'
или строку'False'
, которая только после этого выводитсяecho
. - person JNevill   schedule 03.07.2019