За последние 24 часа нас посетили 72640 программистов и 1650 роботов. Сейчас ищут 860 программистов ...

преобразование типов

Тема в разделе "PHP для новичков", создана пользователем host, 7 ноя 2008.

  1. host

    host Активный пользователь

    С нами с:
    20 июн 2007
    Сообщения:
    733
    Симпатии:
    3
    array(1) { ["abc"]=> string(14) "52129" }
    Как такое вообще может быть, ведь символов то видно что их 5, а не 14 ?
    Если сделать $a = (int)$b['0']; //выведет 0 почему-то
    Скажите пожалуйста из-за чего это?
     
  2. Mete0

    Mete0 Активный пользователь

    С нами с:
    18 дек 2006
    Сообщения:
    272
    Симпатии:
    0
    Адрес:
    Gatchina
    Ещё и NOTICE сгенерирует :)
    А что смущает что? Это равносильно что написать $a = intval(null);
     
  3. host

    host Активный пользователь

    С нами с:
    20 июн 2007
    Сообщения:
    733
    Симпатии:
    3
    $b['0'] - не пустой. Там содержатся цифры типa string (52129)
     
  4. Mete0

    Mete0 Активный пользователь

    С нами с:
    18 дек 2006
    Сообщения:
    272
    Симпатии:
    0
    Адрес:
    Gatchina
    Покажи что там содержится, какие именно "цифры".
     
  5. host

    host Активный пользователь

    С нами с:
    20 июн 2007
    Сообщения:
    733
    Симпатии:
    3
    Mete0
     
  6. Mete0

    Mete0 Активный пользователь

    С нами с:
    18 дек 2006
    Сообщения:
    272
    Симпатии:
    0
    Адрес:
    Gatchina
    Быть такого просто не может.
    PHP:
    1. <?php
    2. $b = array('52129');
    3. $a = (int) $b[0];
    4. echo . $a ' == '  . $b[0];
    5. ?>
    Угадай что выведет ? :)
     
  7. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.559
    Симпатии:
    632
    В PHP все массивы - ассоциативные. Поэтому когда ты спрашиваешь $b['0'] он ищет эллемент с индексом 0, а не первый, который у тебя имеет индекс abc.
     
  8. obsrv

    obsrv Активный пользователь

    С нами с:
    2 окт 2008
    Сообщения:
    238
    Симпатии:
    0
    Адрес:
    Санкт-Петербург
    host
    Интересно, что (и как, и где) присваивается переменной со значением "52129" ?
    Можно посмотреть ?

    ps: я так понимаю наверху var_dump.
     
  9. Самое смешное, что если копать внутрь ПХП, на самом деле они все ассоциативные, но с численными индексами. =)
    Это в прошлую тему про киррилические символы в индексах массива — это безразлично, ибо пхп хранит лишь хеш от индекса.
     
  10. PHP:
    1. <?php
    2. $a = array('abc'=>"123456\n\t\n\r\n\r\r\n\r");
    3. ?>
    Код (Text):
    1. array(1) { ["abc"]=>  string(15) "123456 " }
     
  11. obsrv

    obsrv Активный пользователь

    С нами с:
    2 окт 2008
    Сообщения:
    238
    Симпатии:
    0
    Адрес:
    Санкт-Петербург
    флоппик
    правильное направление, потому я и спросил автора.
    Но! при выводе такого дампа будут и переносы и пробелы и табуляции, а он указал закрывающую ".
    Вот меня и интересует, что же он туда запихнул такое.
    Потому и не получится (вероятно) число из такой строки (тут я не проверял).
     
  12. host

    host Активный пользователь

    С нами с:
    20 июн 2007
    Сообщения:
    733
    Симпатии:
    3
    Решена проблема. В реальности в переменной где содержится число 52129 были другие html тэги.
    Т.е. <td>52129</td>. Естесствено их и небыло видно, поэтому получилась такая ситуация + ночь :)
     
  13. Vladson

    Vladson Старожил

    С нами с:
    4 фев 2006
    Сообщения:
    4.040
    Симпатии:
    26
    Адрес:
    Estonia, Tallinn
    Сразу вспомнился анекдот про то что самое сексуальное число это "21593"
    (если двое думают об одном, то через пять недель они поймут что через 9 месяцев их будет трое)