Автор Тема: Помогите!  (Прочитано 4632 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Vladimir

  • Гость
Помогите!
« : 29 Августа 2002, 10:12:38 »
Написал такой код:
$a = 1;
$c = "1";
$rez1 = $a + $c;
$rez2 = $c + $a;
echo"$rez1
$rez2";
?>
По всем правилам на экран должно вывести:
2 и 11
А у меня оба результата равняются 2 и обе переменные string :-/
В чем может проблема? Может глюкавая версия PHP?

Оффлайн Stek

  • Обожатель PHP
  • Ветеран
  • *****
  • Сообщений: 532
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.phpdevs.com
Помогите!
« Ответ #1 : 29 Августа 2002, 10:31:03 »
$rez2 = $c.$a;

а + предназначен именно для складывания, что пхп и делает.

Вот этот раздел  тебе думаю будет сильно интересен
« Последнее редактирование: 29 Августа 2002, 10:36:05 от Stek »
PHP без башни - сделай свою жизнь разнообразнее.
Разбираю скрипты, собираю заново, вытираю пыль с баз данных.

Оффлайн Доктор

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 487
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Помогите!
« Ответ #2 : 29 Августа 2002, 15:09:45 »
Цитировать
А у меня оба результата равняются 2 и обе переменные string :-/

Обе переменные integer...
« Последнее редактирование: 29 Августа 2002, 15:15:08 от Доктор »

Оффлайн Maniac

  • Ума нет - считай коллега
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 844
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Помогите!
« Ответ #3 : 29 Августа 2002, 16:49:01 »
PHP автоматически конвертирует строки в числа и наоборот
TANSTAAFL

Оффлайн Доктор

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 487
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Помогите!
« Ответ #4 : 29 Августа 2002, 23:16:22 »
Maniac
Ну и что? В данном примере обе переменные integer...

Оффлайн Maniac

  • Ума нет - считай коллега
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 844
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Помогите!
« Ответ #5 : 30 Августа 2002, 14:53:31 »
Цитировать
В данном примере обе переменные integer...

Да ну? А ты сделай print gettype() и узнаешь, какого они типа.
В данном примере переменная $a - типа integer, $c - типа string, но при сложении интерпретатор преобразовал $c в строку.
А если бы он не складывал, а делал конкатенацию, то $a было бы преобразовано в string
TANSTAAFL

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Помогите!
« Ответ #6 : 30 Августа 2002, 15:07:54 »
Маньяк, зачем ты это написал?
Кому это надо?
Доктор все правильно объяснил.
А ты сам невнимательно читаешь, в словах путаешься и еще споришь.
Тут тебе даже отвечать нечего - потому, что все давно отвечено, а ты просто невнимательно прочел.

Ну не люблю я вот когда простые и четкие ответы потом замыливаются вот такими "обсуждениями" на пустом месте.
По хорошему тут стереть надо все, начиная с четвертого постинга в этой теме.

Оффлайн Maniac

  • Ума нет - считай коллега
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 844
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Помогите!
« Ответ #7 : 30 Августа 2002, 15:10:50 »
RomikChef
Если бы мне нужен был анализ моего постинга, я бы попросил.
А Доктор допустил ошибку, ткнул меня в неё носом, я ему (здесь же) показал где он не прав.
TANSTAAFL

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Помогите!
« Ответ #8 : 30 Августа 2002, 15:14:29 »
:-))))))))))))))))
Маньяк!
Я тебя обожаю :-)))))
Я ДАВНО так не смеялся!!!!
"Доктор опустил ошибку и ткнул меня в нее носом" :-)))))))
слушай, ты хоть в одном постинге можешь написать без смысловых ошибок? :-))))

про ошибки, кторых нет, я уже молчу :-)))
Сил нету :-))))

Оффлайн Maniac

  • Ума нет - считай коллега
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 844
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Помогите!
« Ответ #9 : 30 Августа 2002, 15:26:32 »
Смешливый ты наш.
Цитировать
опустил ошибку

допустил.

Цитировать
кторых нет я уже молчу

Вот и молчи. Почитай орфографический словарик русского языка, а также что-нибудь по теории программирования (там популярно написано про типы и их неявное преобразование)
TANSTAAFL

Оффлайн Дмитрий Попов

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 264
  • +0/-0
  • 0
    • Просмотр профиля
    • http://www.programmist.spb.ru
Помогите!
« Ответ #10 : 30 Августа 2002, 15:30:22 »
RomikChef
Не достало?
 За Родину! За Россию!
SendMail для любого хостинга.

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Помогите!
« Ответ #11 : 30 Августа 2002, 15:38:35 »
Маньяк, чтобы ты дальше не тупил, я позволю себе показать твои ошибки :-)
Цитировать
А у меня оба результата равняются 2 и обе переменные string :-/
Обе переменные integer...

То есть, речь идет о последних двух переменных, а и с тут не при чем.
уж не знаю, зачем ты прицепился к этим а и с, отвечая доктору - ведь он-то имел в виду рес1 и рес2!

Дальше. КОНЕЧНО ЖЕ, эти переменные (рес1 и рес2 )будут иметь тип интеджер. Я не собираюсь даже проверять это.
Так что, на этом можно спор и закончить.
Цитировать
$c - типа string, но при сложении интерпретатор преобразовал $c в строку.

Вот этот пассаж непонятен абсолютно. Нет, то, что ты опечатался, и написал строка вместо int - это понятно. Непонятно - к чему?
То ли ты считаешь, что при участии в выражении, переменная необратимо меняется, то ли хочешь сказать, что из-за того, что переменная $c нынче integer, то пееменные рес1 и рес2 - стринг...

В общем, перечитал я твое сообщение, 4 сверху, и понял, что оно могло не относиться к словам Доктора. Но тогда ты бы так и объяснил, а не стал спорить.

Оффлайн Maniac

  • Ума нет - считай коллега
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 844
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Помогите!
« Ответ #12 : 30 Августа 2002, 15:46:04 »
Цитировать
$c - типа string, но при сложении интерпретатор преобразовал $c в строку

Это была опечатка. Я имел в виду "в число".
Далее... Мой постинг ДЕЙСТВИТЕЛЬНО относился к автору топика.
Цитировать
бы так и объяснил, а не стал спорить

Ты не спрашивал.
В общем, проехали. ИМХО, автор топика сюда уже и не заглядывает :)
TANSTAAFL

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Помогите!
« Ответ #13 : 30 Августа 2002, 15:51:02 »
Maniac
Беда в том, что теории программирования тут не при чем. Чуточку здравого смысла и банальной внимательности.

Оффлайн Maniac

  • Ума нет - считай коллега
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 844
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Помогите!
« Ответ #14 : 30 Августа 2002, 15:53:17 »
Цитировать
теории программирования тут не при чем. Чуточку здравого смысла и банальной внимательности

Согласен
TANSTAAFL

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28