PHP if-оператор всегда возвращает false - PullRequest
0 голосов
/ 26 апреля 2020

Я использую функцию PHP с простым оператором if else. Если переменная = 100, что-то сделать, иначе сделать что-то еще.

Данные поступают из ACF Range Field . По какой-то причине функция всегда возвращает оператор else, даже если поле ACF = 100. Я решил, что проблема в операторе if, где я пытался использовать: =, ==,! ==, === или> =. Если я изменяю его на single =, он всегда возвращает h2. Нечто, но все остальные возвращают h2 что-то еще, независимо от того, какое значение я поместил в поле ACF Range.

function hovsa_shortcode() {
    $full_tegnet = get_field("tegnede_andele_");
    if ( $full_tegnet == '100' ) {

        return '<h2>Something</h2>';

    } else {

        return '<h2>Something else</h2>';

    }
}

add_shortcode( 'hovsa', 'hovsa_shortcode' );

Ответы [ 2 ]

1 голос
/ 26 апреля 2020

при условии, что $full_tegnet должно быть целым числом, которое вы можете использовать после

if(intval($full_tegnet) === 100){
     return '<h2>Something</h2>';
}
0 голосов
/ 26 апреля 2020
  1. Согласно документации Поле диапазона ACF является цифрой c значением . Как утверждает @Daisen Sekai, вы можете разыграть $full_tegnet, используя intval() в вашем состоянии и использовать строгое равенство для сравнения.

    <?php $full_tegnet = intval($full_tegnet); if ($full_tegnet === 100) { // your logic }

  2. Но PHP выполняет жонглирование типа , а если $full_tegnet = 100, ваше утверждение if ( $full_tegnet == '100' ) должно возвращать true . Вы можете протестировать этот фрагмент кода в скрипте и увидеть результат:

    <?php $full_tegnet = 100; if ( $full_tegnet == '100' ) { echo '<h2>Something</h2>'; } else { echo '<h2>Something else</h2>'; }

  3. В вашем коде могут быть другие проблемы, более вероятно, значение $full_tegnet что вызывает это. Как прокомментировал @ M C Emperor, выполните var_dump($full_tegnet), чтобы получить значение / тип $full_tegnet

  4. Используйте встроенный шорткод ACF, чтобы увидеть, что возвращается

    [acf field="{$tegnede_andele_}"]

...