кастинг удаляет ведущие нули - PullRequest
1 голос
/ 16 мая 2009

Может кто-нибудь сказать мне, почему, когда я произнесу строку, скажем, 00332, я получу только 332? Он удаляет начальные нули и сохраняет данные в том же формате.

Спасибо


this->_gate   = (string) $this->_linkID->QuoteSmart($gate);

Ответы [ 5 ]

2 голосов
/ 16 мая 2009

Не приводите строки к строкам или к любому другому типу. Typecasting - для изменения чего-то от одного типа к другому.

1 голос
/ 16 мая 2009
$ php -r 'var_dump((string)"00123");'
string(5) "00123"

Похоже, актерский состав не твоя проблема.

1 голос
/ 16 мая 2009

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

Может быть, вам следует оставить ее как строку, если вам нужны эти ведущие нули, и приводить (int) только к любой математической операции, которую необходимо выполнить (хотя вы можете просто использовать строку тоже, PHP это выяснит)

редактировать

Посмотрев пример, я хотел бы вывести значение перед тем, как вы приведете к строке (поэтому я могу подтвердить, что что-то подозрительное не происходит с вашим методом QuoteSmart (или значением, которое вы отправляете как параметр, $ gate)

0 голосов
/ 16 мая 2009

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

0 голосов
/ 16 мая 2009

Во что вы его бросили и почему? Давайте посмотрим код. Если вы приведете к целому числу, да, целые числа не имеют начальных нулей, поэтому они исчезают. Не удивительно.

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