if Заявление не является конечной переменной внутри функции (плагин Wordpress) - PullRequest
0 голосов
/ 09 мая 2019

Переменная недоступна внутри функции.Когда я отображаю переменную вне функции, я получаю правильный результат.Когда я отображаю / использую переменную внутри функции, я получаю 'Notice: Undefined variable: crLocalIncompleteStatus в /setup.php в строке 35'

Любые идеи?

<?php
    global $wpdb;
    $table_name = $wpdb->prefix . 'crLocal';

    $crLocalIncompleteStatus = '';
    $crLocalCompleteStatus = '';

    $crLocal_DBChecked = $wpdb->get_var("SELECT COUNT(*) FROM $table_name");

    function crLocal_CheckDB() {
        global $crLocal_DBChecked,  $crLocalIncompleteStatus, $crLocalCompleteStatus;

        if ($crLocal_DBChecked == '0') { 
            $crLocalIncompleteStatus = 'block' ;
            $crLocalCompleteStatus = 'none' ;
        } elseif ($crLocal_DBChecked != '0') { 
            $crLocalIncompleteStatus = 'none' ;
            $crLocalCompleteStatus = 'block' ;
        } else {
            // Broken
            // More Code to follow
        }

        echo $crLocal_DBChecked;
    }

    crLocal_CheckDB();

    $crLocalInstallIncomplete = '<div id="crLocalInstallIncomplete" style="display: '.$crLocalIncompleteStatus.';">' ;

    $crLocalInstallComplete = '<div id="crLocalInstallComplete" style="display: '.$crLocalCompleteStatus.';">' ;

?>

Так что мне нужно:

$ crLocalIncompleteStatus должен быть равен «блоку», когда счетчик равен 0 из базы данных, и «нет», если его значение больше 0.

$ crLocalCompleteStatus равен «нет», когда счетчик равен 0 отбаза данных и «блок», когда его выше 0.

1 Ответ

0 голосов
/ 10 мая 2019

Это потому, что ваша переменная $ crLocalIncompleteStatus находится вне области вашей функции, вы можете исправить это, добавив переменную в функцию в качестве параметра

function crLocal_CheckDB($crLocalIncompleteStatus) {
    global $crLocal_DBChecked,  $crLocalIncompleteStatus, $crLocalCompleteStatus;

    if ($crLocal_DBChecked == '0') { 
        $crLocalIncompleteStatus = 'block' ;
        $crLocalCompleteStatus = 'none' ;
    } elseif ($crLocal_DBChecked != '0') { 
        $crLocalIncompleteStatus = 'none' ;
        $crLocalCompleteStatus = 'block' ;
    } else {
        // Broken
        // More Code to follow
    }

    echo $crLocal_DBChecked;
}

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