Без описания |
Поиск в теме | Версия для печати |
Furax |
Отправлено: 16 Марта, 2008 - 08:43:18
|
Бледнотик
Покинул форум
Сообщений всего: 1472
Дата рег-ции: Март 2007
Откуда: Иркутск, Сибирь, СССР
Карма 32
|
Не надо вообще смешивать понятия литерала и типа.
Тип данных - это понятие, определяющее, как будет обработан тот или иной объект; любые данные строкового типа будут обрабатываться как строки, будь то литерал, переменная, константа, результат, возвращаемый функцией и т. д. В языках со строгой типизацией (C/C++, Pascal, etc.) каждая переменная имеет определённый тип и не может хранить значения другого типа; в PHP и JavaScript тип переменной может меняться и определяется типом значения, которое в ней содержится.
Литерал - это константное выражение соответствующего типа: число (численный литерал), строка в кавычках (строковый литерал) и т. п. Я бы назвал литералом массива выражение типа array(1, 2, 3), но я нигде не встречал подобной терминологии и, возможно, я не прав. |
|
|
Systemnik |
Отправлено: 16 Марта, 2008 - 08:45:40
|
ExBB Developer Team
Покинул форум
Сообщений всего: 778
Дата рег-ции: Дек. 2007
Карма 0
|
Так еще раз:
1) Все что засунуто в кавычки является строковым или численным литералом.
так?
Код
CODE:
$sin = sin(0.3); //Обрати внимание: переменная $sin - числового типа!
$str = "$sin"; //$str - уже строка
if (strpos($str, '7') !== FALSE)
echo 'Есть семёрка!';
else
echo 'Нету...';
полностью равен коду:
CODE:$sin = sin(0.3); //Обрати внимание: переменная $sin - числового типа!
if (strpos("$sin", '7') !== FALSE)
echo 'Есть семёрка!';
else
echo 'Нету...';
??
строквый тип это - переменная литерал итд тоесть все что отночится к данным?
а зачем строковый тип превращать в строковый литерал?(Отредактировано автором: 16 Марта, 2008 - 08:49:20) |
|
|
Systemnik |
Отправлено: 16 Марта, 2008 - 08:58:12
|
ExBB Developer Team
Покинул форум
Сообщений всего: 778
Дата рег-ции: Дек. 2007
Карма 0
|
но остался один есдинственный вопрос
а зачем числовой тип превращать в строковый литерал?
Цитата:
$a=2 - здесь и 2, и $a имеют численный тип. 2 - это численный литерал, но $a литералом не является, она переменная!
А если я напишу
$a="2"; - $a станет литералом?
А почему вы написали
CODE:if (strpos($str, '7') !== FALSE)
а не
CODE:if (strpos($str, 7) !== FALSE)
?(Отредактировано автором: 16 Марта, 2008 - 09:05:49) |
|
|
Furax |
Отправлено: 16 Марта, 2008 - 09:20:39
|
Бледнотик
Покинул форум
Сообщений всего: 1472
Дата рег-ции: Март 2007
Откуда: Иркутск, Сибирь, СССР
Карма 32
|
CODE:$a="2"; - $a станет литералом? $a никогда не будет литералом, $a - это переменная, один из элементов, использующихся в языке: возвращаемых значений функций, переменных, констант, литералов и т. п.
Я написал '7' только за тем, чтобы подчеркнуть, что второй аргумент функции strpos - строка, а не число. Если бы я написал 7 без кавычек, PHP за меня привёл бы второй аргумент (как, вообще говоря, и первый) к строковому типу, т. к. он знает, что аргументами strposа должны быть строки. Кавычки я ставил, чтобы это было видно человеку, а не машине. |
|
|
|
Поиск в теме | Версия для печати |
Страниц (6): « 1 2 3 [4] 5 6 » |
Сейчас эту тему просматривают: 10 (гостей: 10, зарегистрированных: 0, скрытых: 0) |
« PHP/Perl » |
Все гости форума могут просматривать этот раздел. Только администраторы и модераторы могут создавать новые темы в этом разделе. Только администраторы и модераторы могут отвечать на сообщения в этом разделе.
|
|
|