Помещение массива в $ var = '' и $ var = null в Windows и Linux - PullRequest
0 голосов
/ 31 октября 2018

Я обнаружил ошибку при отладке некоторого кода:

эта функция:

function mrbsGetEntryInfo($id)
{
    $sql = "SELECT start_time, end_time, entry_type, repeat_id, room_id,
    timestamp, beneficiaire, name, type, description
    FROM ".TABLE_PREFIX."_entry
    WHERE id = '".$id."'";
    $res = grr_sql_query($sql);
    if (!$res)
        return;
    $ret = '';
    if (grr_sql_count($res) > 0)
    {
        $row = grr_sql_row($res, 0);
        $ret["start_time"]  = $row[0];
        $ret["end_time"]    = $row[1];
        $ret["entry_type"]  = $row[2];
        $ret["repeat_id"]   = $row[3];
        $ret["room_id"]     = $row[4];
        $ret["timestamp"]   = $row[5];
        $ret["beneficiaire"]   = $row[6];
        $ret["name"]        = $row[7];
        $ret["type"]        = $row[8];
        $ret["description"] = $row[9];
    }
    grr_sql_free($res);
    return $ret;
}

В Windows переменная $ret = '' работает нормально, и при выводе переменной мы получаем полный спектр от start_time до description.
Но в Linux CentOS функциональный блок на $ret='' выводит только $ret["type"] ( type - это один символ)

проблема была исправлена ​​переключением '' на null. Я не понимаю, почему, я нашел это объясняющее разницу между '' и нулем

Как сказано в теме выше, '' - пустая строка, а null - просто переменная, в которой ничего нет. Я до сих пор не понимаю, почему это решило проблему.


полезная информация:

+------------+------------+--------------+
|            |   Windows  | Linux CentOS |
+------------+------------+--------------+
| OS version | Windows 10 |  Centos 7.5  |
+------------+------------+--------------+
|     PHP    |    7.1.9   |    7.2.11    |
+------------+------------+--------------+
|    MySQL   |   5.7.19   |    5.7.24    |
+------------+------------+--------------+
|   Apache   |   2.4.27   | Apache/2.4.6 |
+------------+------------+--------------+
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...