Другой сервер, другой тип данных с одинаковым кодом

Я запускаю код, получающий данные с сервера БД, все работает локально. Но когда я нажимаю на него онлайн, он больше не работает.

Я думаю, я знаю, откуда проблема. Вот данные, которые я получаю локально:

object(stdClass)#451 (14) {
["matter_created_actionstep_c"]=>
string(1) "1"["trust_receipt_sent_c"]=>
string(1) "1"["scope_complete_c"]=>
string(1) "0"["transferred_trust_to_current_c"]=>
string(1) "0"}

И когда я нажимаю на свой сервер, вот результат, который я получаю:

object(stdClass)#451 (14) {
["matter_created_actionstep_c"]=>
int(1)
["trust_receipt_sent_c"]=>
int(1)
["scope_complete_c"]=>
int(0)
["transferred_trust_to_current_c"]=>
int(0)
}

Вам известна какая-либо конфигурация apache, которая может привести к этому изменению набора?

Единственный файл проекта, который отличается, это файл conf:

локально:

DB_HOST=1.1.1.1

на сервере:

DB_HOST=localhost

Заранее спасибо.

0

Решение

Это может быть результатом многих проблем. Может быть, другая версия PHP, может быть, данные поступают из базы данных, а версия драйвера базы данных отличается …

Я бы сказал, что приложение виновато. PHP нетипизирован, то есть в большинстве случаев никому не нужен фактический тип переменной. В вашем случае почти никто не заботится, если значение 2 или же "2" до тех пор, пока он ведет себя одинаково (например, 2==2 равняется 2=="2"). Если приложение требует определенных типов в некоторых переменных, оно должно гарантировать, что переменные содержат эти типы! Это не тот случай, здесь.

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

Тем не менее (или если объект происходит откуда-то еще), возможно, имеет смысл сделать код более прощающим в отношении типов, то есть не полагаться на специальный тип, если это не нужно. По моему опыту, есть только несколько случаев, когда тип переменных действительно имеет значение.

2

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector