Strict Standards: Resource ID#18 used as offset, casting to integer (18) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/fm.class.php on line 401

Strict Standards: Resource ID#23 used as offset, casting to integer (23) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/fm.class.php on line 401

Strict Standards: Resource ID#25 used as offset, casting to integer (25) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/fm.class.php on line 401

Strict Standards: Resource ID#26 used as offset, casting to integer (26) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/fm.class.php on line 401
ТвойWeb :: PHP + MySQL [4]
ТвойWeb ТвойWeb
Качественный Европейский хостинг
Форум для чайников
 Чат на форуме      Помощь      Поиск      Пользователи


 Страниц (6): « 1 2 3 [4] 5 6 »   

> Без описания
Furax
Отправлено: 16 Марта, 2008 - 08:43:18
Post Id



Бледнотик


Покинул форум
Сообщений всего: 1472
Дата рег-ции: Март 2007  
Откуда: Иркутск, Сибирь, СССР

Карма 32




Не надо вообще смешивать понятия литерала и типа.

Тип данных - это понятие, определяющее, как будет обработан тот или иной объект; любые данные строкового типа будут обрабатываться как строки, будь то литерал, переменная, константа, результат, возвращаемый функцией и т. д. В языках со строгой типизацией (C/C++, Pascal, etc.) каждая переменная имеет определённый тип и не может хранить значения другого типа; в PHP и JavaScript тип переменной может меняться и определяется типом значения, которое в ней содержится.

Литерал - это константное выражение соответствующего типа: число (численный литерал), строка в кавычках (строковый литерал) и т. п. Я бы назвал литералом массива выражение типа array(1, 2, 3), но я нигде не встречал подобной терминологии и, возможно, я не прав.
 
 Top
Systemnik Администратор
Отправлено: 16 Марта, 2008 - 08:45:40
Post Id



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)

 
 Top
Systemnik Администратор
Отправлено: 16 Марта, 2008 - 08:54:03
Post Id



ExBB Developer Team


Покинул форум
Сообщений всего: 778
Дата рег-ции: Дек. 2007  

Карма 0




Так
CODE:
$a = 2; // строковый тип и численный литерал? тесть число в литерал превращать кавычками ненадо? тк оно уже литерал?

(Отредактировано автором: 16 Марта, 2008 - 08:54:26)

 
 Top
Furax
Отправлено: 16 Марта, 2008 - 08:54:08
Post Id



Бледнотик


Покинул форум
Сообщений всего: 1472
Дата рег-ции: Март 2007  
Откуда: Иркутск, Сибирь, СССР

Карма 32




Systemnik
Кавычки - признак символьного литерала! Числовой пишется без кавычек.

Да, код эквивалентен. Во втором случае просто нет промежуточной переменной.
 
 Top
Systemnik Администратор
Отправлено: 16 Марта, 2008 - 08:55:03
Post Id



ExBB Developer Team


Покинул форум
Сообщений всего: 778
Дата рег-ции: Дек. 2007  

Карма 0




Цитата:
Да, код эквивалентен. Во втором случае просто нет промежуточной переменной.

Значит тема понята

(Отредактировано автором: 16 Марта, 2008 - 08:58:26)

 
 Top
Furax
Отправлено: 16 Марта, 2008 - 08:55:18
Post Id



Бледнотик


Покинул форум
Сообщений всего: 1472
Дата рег-ции: Март 2007  
Откуда: Иркутск, Сибирь, СССР

Карма 32




$a=2 - здесь и 2, и $a имеют численный тип. 2 - это численный литерал, но $a литералом не является, она переменная!
 
 Top
Systemnik Администратор
Отправлено: 16 Марта, 2008 - 08:58:12
Post Id



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)

 
 Top
Ray Wen Администратор
Отправлено: 16 Марта, 2008 - 09:06:54
Post Id



Собиратель шишек...


Покинул форум
Сообщений всего: 2602
Дата рег-ции: Янв. 2005  
Откуда: Волгоград

Карма 21




Systemnik
В PHP переменные не имеют четкого типа, переменную можно использовать по разному и по ходу привращать в строку, число, массив и т.д... В общем станет тем кем нужно...
 
 Top
Systemnik Администратор
Отправлено: 16 Марта, 2008 - 09:12:12
Post Id



ExBB Developer Team


Покинул форум
Сообщений всего: 778
Дата рег-ции: Дек. 2007  

Карма 0




несовсем понял можно попорядку сначало на первыйвопорс потом на второй тоесть в первом нет?
 
 Top
Furax
Отправлено: 16 Марта, 2008 - 09:20:39
Post Id



Бледнотик


Покинул форум
Сообщений всего: 1472
Дата рег-ции: Март 2007  
Откуда: Иркутск, Сибирь, СССР

Карма 32




CODE:
$a="2"; - $a станет литералом?
$a никогда не будет литералом, $a - это переменная, один из элементов, использующихся в языке: возвращаемых значений функций, переменных, констант, литералов и т. п.

Я написал '7' только за тем, чтобы подчеркнуть, что второй аргумент функции strpos - строка, а не число. Если бы я написал 7 без кавычек, PHP за меня привёл бы второй аргумент (как, вообще говоря, и первый) к строковому типу, т. к. он знает, что аргументами strposа должны быть строки. Кавычки я ставил, чтобы это было видно человеку, а не машине.
 
 Top
Страниц (6): « 1 2 3 [4] 5 6 »
Сейчас эту тему просматривают: 4 (гостей: 4, зарегистрированных: 0, скрытых: 0)
« PHP/Perl »


Все гости форума могут просматривать этот раздел.
Только администраторы и модераторы могут создавать новые темы в этом разделе.
Только администраторы и модераторы могут отвечать на сообщения в этом разделе.
 



Форум на AlfaSpace.NET


Powered by ExBB
ExBB FM 1.0 RC1 by TvoyWeb.ru
InvisionExBB Style converted by Markus®

[Script Execution time: 0.0495]     [ Gzipped ]



Notice: ob_end_flush(): failed to send buffer of ob_gzhandler (1) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/page_tail.php on line 33