Путать с оператором if, у которого нет глагола (например, ==,! = И т. Д.) - PullRequest
2 голосов
/ 20 февраля 2011

Я понимаю, что если в других комментариях должно быть что-то вроде:

, если собака равна единице, сделайте это.

if (dog==1)

Но в следующем php-коде кажется, что он говорит

Если собака, то сделайте это (если собака что?)

<?php if ( get_post_meta($post->ID, 'thumb', true) ) : ?>
    <a href="<?php the_permalink() ?>" rel="bookmark">
        <img class="thumb" src="<?php echo get_post_meta($post->ID, 'thumb', true) ?>" alt="<?php the_title(); ?>" />
    </a>
<?php endif; ?>

Мне кажется, что это как предложение, в котором отсутствует глагол.

Может кто-нибудь объяснить это мне впростой английский?

Ответы [ 8 ]

3 голосов
/ 20 февраля 2011

Выражение, используемое в качестве условия оператора if, может быть чем угодно.Никто не заставляет вас использовать оператор сравнения. Значение выражения преобразуется в логическое значение и используется в качестве условия.

$foo = true;
if ($foo) // quite valid

function bar() {
    return false;
}
if (bar()) // also valid

if ("hello") // PHP automatically casts types, so a string is also fine

if (1 + 1) // any expression will do

Для объяснения того, как различные значения преобразуются в логические значения, см.руководство .

Если вы чувствуете полностью потерянными без одного из ваших «глаголов», вы всегда можете представить == true в конце каждого оператора if.Только не пишите это в своем коде, потому что == true выглядит просто глупо.

2 голосов
/ 20 февраля 2011

Если требуется логическое значение.Оператор == возвращает значение true или false, но функция, в данном случае get_post_meta, может также возвращать true или false.

. Может даже содержать переменную.Это тривиально, когда переменная является логическим значением, но если значение является строкой, это также будет работать.строка "1" будет оцениваться как true, а также строка "this is a string".Это будет сбивать с толку, когда строка, например, "false", которая также true (в отличие от false, логическое значение).

0 голосов
/ 20 февраля 2011

здесь условие if будет выполнено, когда get_post_meta ($ post-> ID, 'thumb', true) равно -

true, 1, непустая строка или непустой массив.

даже если выражение не возвращает логическое значение, php оценит его как логическое

0 голосов
/ 20 февраля 2011

если в этом сообщении есть уменьшенное изображение , тогда делайте ...

0 голосов
/ 20 февраля 2011

когда у вас есть следующее

if ($a)

Это верно, когда $ a не оценивается как ЛОЖЬ.

Например, 0 или false не пройдут этот тест.

0 голосов
/ 20 февраля 2011

если (результат этой функции равен true), выведите это в html

0 голосов
/ 20 февраля 2011

if s имеют неявное == true, поэтому if(dog) эквивалентно if(dog == true)

0 голосов
/ 20 февраля 2011

Условие if выполнено, когда возвращаемое значение get_post_meta равно true.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...