2015-04-12 2 views
-1

Прошу прощения, если это было задано раньше, но я понятия не имею, что искать, чтобы найти ответ.

Я предполагаю, что это означает переменную $ variable = возвращаемое значение или строку, если функция не возвращает значение, но я хотел бы уточнить.

Благодаря

+2

Если возвращаемое значение функции равно строки переменных назначаемые с TRUE, в противном случае FALSE. – Rizier123

+0

Кстати, поведение, которое вы описываете и, возможно, ищете, - это «тернарный оператор». – jeroen

ответ

2

Заявление лучше всего можно понять, разбив его:

some_function(arg1, arg2) 

Функция выполняется первым, и возвращает некоторое значение. Обратите внимание, что даже если функция не содержит инструкции return, она вернет значение, в этом случае значение null.

== 'string' 

Возвращаемое значение сравнивается со строковым значением 'string'. Обратите внимание, что оператор сравнения PHP может выполнять «жонглирование типа», поэтому другие значения, такие как целое число 0, считаются равными этой строке. Это даст вам результат либо true, либо false.

$variable = 

Результат сравнения (а не вызов функции) хранятся в $variable.

Таким образом, после заявления, $variable будет содержать true, если функция вернула что-то считается равным 'string' и false иначе.

+1

Альтернативный способ взглянуть на это путем добавления скобок. Утверждение эквивалентно '$ variable = (some_function ($ arg1, $ arg2) == 'string');' – topher

1

Это будет проверить, является ли значение, возвращаемое функцией some_function() равно значению string (не запутаться с строки типа данных) или нет, и назначить true или false к $variable, на основе результат.

0
<?php 

$a = "Hello "; 
$b = "World"; 

if ($result = some_function($a, $b) == "Hello World") { 
    echo "Yep it matched" . "<br/>"; 
    // In True or false 

    if ($result == TRUE) { 
     echo "True matched"; 
    } 

} 

else 
{ 
    echo "Nope, it doesn't matched" . "<br/>"; 

    if ($result == FALSE) { 
     echo "False failed"; 
    } 

} 

function some_function($a, $b) 
{ 
    $new = $a . $b; 
    return $new; 
} 

?> 

Выход:

Yep it matched 
True matched 

Объяснение:

  1. some_function($a, $b) в состоянии if вызывает функцию some_function($a, $b) и возвращаемое значение будет сохранено в месте some_function($a, $b).
  2. Итак, на основе нашего примера some_function($a, $b) в операторе if будет Hello World, который был возвращен из функции some_function($a, $b) (верните $ new).
  3. Теперь он проверяет в заявлении

    if ($result = some_function($a, $b) == "Hello World") { 
    
  4. Наша some_function($a, $b) имеет "Hello World" & он сравнивает со строки "Hello World", которая находится в правой части. (т. е. эта часть == «Hello World»)

  5. Если оно совпадает, то $result будет иметь значение TRUE, и оно выполняет то, что находится в блоке if.
  6. Если он не совпадает, $result будет иметь значение FALSE, а затем он отправится в else и выполнит то, что находится в блоке else.

Предположим, если

$a = "Good "; 
    $b = "Night "; 

затем $ в & $ B передается в качестве параметра в some_function($a, $b), который будет возвращать Good Night.

И возвращаемое значение (в данном случае Good Night), будет сохранено в месте some_function($a, $b) в условии if.

some_function($a, $b) имеет Good Night & он сравнивается со строкой «Hello World», которая находится в правой части. (т. е. эта часть == «Hello World»)

Если он совпадает, $ result будет установлен в TRUE, если не установлен в FALSE.

Здесь он потерпит неудачу, так как он не будет соответствовать. Таким образом, он будет выводиться как,

Nope, it doesn't matched 
False failed 

Если оно соответствует, то он будет печатать, как

Yep it matched 
True matched 
+0

Это не отвечает на вопрос, просто добавляет еще большую сложность в формулировку, 'if' (и оставление назначенной переменной не используется). – IMSoP

+0

Проверьте это сейчас ... –

+0

Извините, но теперь это кажется еще сложнее. Я понимаю, что он делает, но это потому, что я уже знаю, что делает исходный оператор; если бы я этого не сделал, я не думаю, что этот пример поможет. – IMSoP

Смежные вопросы