![]() |
Типы данных языка PHP. |
В php есть три основных типа данных: целое число (integer), действительное
число (double), и строка (string). Помимо основных имеются еще два типа: массивы
и обьекты, которые обсуждаются в последующих главах. У каждой переменной есть
свой тип, хотя тип переменной может меняться налету, когда изменяется значение
переменной или иным программным образом.
Целые числа занимают 4 байта памяти и используются для предоставления обычных
чисел в диапазоне примерном от –2 миллиардов до +2 миллиардов. Числа с плавающей
запятой (действительные) используются для предоставления десятичных значений или
показателей. Строки используются для предоставления нечисловых значений типа
букв, знаков пунктуации и даже чисел.
2 // это целое число
2.0 // это действительное число
" 2" // это строка
" 2 hours" // это тоже строка.
Во многих языках есть логический тип данных для
предоставления логических значений True и False. В php такой тип отсутствует.
Вместо этого исползуется выражения, составленные из 3-х других основных типов,
принимающие значение истина или ложь. Для целых чисел 0 (ноль) вычисляеться как
False, а любое ненулевое целое значение как True. Анологично действительное
значение 0,0 (или такие его эквиваленты 0,000) вычисляются как False, а
ненулевые значения вычисляются как True. Что касаеться строк, то пустая строка
вычисляеться как False, она представляеться парой кавычек между которыми ничего
нет. Все непустые строки вычисляються как True.
Литералы и идентификаторы
Переменные, константы, функции и классы должны иметь различные метки для того, чтобы их можно было использовать. Для этих меток существует различие между литералами и именами. Литералы являются "сырыми" данными — что видишь, то и имеешь. Могут быть числовые литералы (например 786) и строковые литералы (например "аquoted string"). По сути, нельзя сделать так, чтобы литерал означал что либо иное, кроме того, что он буквально означает. Напротив, имена получают значение в результате соглашения или в результате установки. Связь между именем и его значением произвольна: роза, как известно, "пахнет розой, хоть розой назови ее, хоть нет". Имена, используемые при программировании, называются идентификаторами. В идентификаторах РНР учитывается регистр, поэтому $price и $Price суть разные переменные. Однако во встроенных функциях и структурах регистр не различается, поэтому echo и ЕСНО выполняют одну и ту же функцию. Идентификаторы могут состоять из любого количества букв, цифр, символов подчеркивания и доллара, но не должны начинаться с цифры.
Значения данных и константы
Значения данных
Помимо смысла для программы идентификатор также имеет значение, являющееся
элементом данных определенного типа. Если идентификатор может изменять свое
значение на протяжении программы, он называется переменной, в то время как
идентификатор с фиксированным значением носитназвание константы.
Константы — это неизменные значения. В число общеизвестных констант входят
число «пи» (приблизительно 3,14), точка замерзания воды при нормальном
атмосферном давлении (О 'С) и значение «полдень» (12:00). В программировании
есть два типа констант: литеральные и символьные. Литеральными константами
являются просто неизменные величины, ссылка на
которые производится непосредственно, без использования идентификатора.
Используя термин «константы», мы обычно имеем в виду символьные константы. Символьные константы представляют собой удобный способ однажды присвоить значение идентификатору, а затем на протяжении всей программы ссылаться на это значение с помощью идентификатора. Например, название вашей компании является довольно постоянной величиной. Вместо того чтобы вставлять литеральную строку «Phop's Bicycles» по всему вашему приложению, можно определить константу с именем COMPANY и значением «Рhор' s Bicycles» и использовать ее для ссылок на название компании в программе. Если когда-либо название компании изменится в результате слияния или маркетинговой уловки, то код придется обновить только в одном месте: там, где вы определили константу. Обратите внимание, что имена констант, в отличие от переменных, не начинаются с символа доллара. Определение констант define("Company", "Phop's Bicycles"); В последнем примере определяется константа с именем NL, представляющая: тег разрыва текста HTML, за которым следует символ новой строки В сущности, мы создали сокращение в коде, поскольку «<BR>\n» является часто используемой комбинацией. Среди программистов принято определять константы с использованием только прописных букв. Константа может содержать любое числовое или строковое значение. Когда константы определены, ими можно пользоваться вместо их значений: echo("Employment at " . Company . NL); Это эквивалентно следующему: echo("Employment at Phop's Bicycles <BR>\n"); Обратите внимание, что константы помещаются вне кавычек. Строчка: echo("Employment at CОMPANY NL"); вывела бы в броузер буквально «Employment at COMPANY NL». defined() if (defined("YELLOW") ) { Встроенные константы echo (РHР_OS); // выводит "Linux" (например) _FILE_ и _LINE_ содержат имя анализируемого сценария и номер текущей строки в этом сценарии, соответственно. (Имена обеих констант начинаются и заканчиваются двумя символами подчеркивания.) В PHP входят несколько констант для сообщения об ошибках: E_ERROR, E_WARNING, Е_PARSE и Е_NOTICE. Далее, в PHP используется ряд предопределенных переменных, в которых
содержится информация о среде, в которой выполняется PHP. Чтобы узнать,
какие значения имеют эти переменные на вашем компьютере,
можновоспользоваться функцией phpinfo (), как показано в следующем примере.
В результате вы должны увидеть на экране следующее: |
Объявление и инициализация переменных В отличие от констант, переменные автоматически объявляются в PHP npu присвоении им значений. Присвоение осуществляется с помощью оператора присваивания (=). Обратите внимание, что оператор присваивания (=) и оператор равенства (= =) различаются в PHP, как мы увидим в следующей главе.
$num_rows = 10; Приведение и преобразование типов Преобразование строк и приведение типов $str = "222 Baker Street"; Если попытаться прибавить к $str целое число 3, то для проведения вычислений $str будет переведена в целое число 222: $x = 3 + $str; // $x = 225; При этом значение самой переменной $str не изменится: echo ($str); // Выводит: 222В Baker Street" При преобразовании строк соблюдаются некоторые правила:
$a = 1; // $а — целое Преобразование типа $e = 11.2; // $а — число с плавающей запятой Допускается также преобразование (array) и (object) . Тип (integer) является синонимом для (int) (float) и (real) являются синонимами для (double) . |
Переменные с переменным идентификатором
PHP поддерживает переменные с переменным идентификатором (variable variables).
Обычные переменные имеют динамические значения: значение переменной можно
устанавливать и изменять. У переменных с переменным идентификатором
динамическим является имя. Такие переменные обычно создают больше путаницы,
чем удобства (особенно при использовании в массивах). Они включены в язык
для полноты, но на практике приносят мало пользы. Вот пример изменяемой переменной: $field = "PrcductID" В первой строке приведенного кода создается строковая переменная с именем
$field, которой присваивается значение "ProductID". Во второй строке echo ($ProductID); // Выводит: 432BB |
Полезные функции для работы с переменными
В PHP есть ряд встроенных функций для работы с переменными.
gettype()
0 массивах, объектах и классах мы расскажем в последующих главах. Вот пример использования gettype (): if (gettype (Suser input) == "integer") { Родственные функции: isset (), settype () settype() $a = 7.5; // $а - число с плавающей запятой if (settype($a, "array")) { isset() и unset() $ProductID = "432ВВ"; |
empty()
empty () почти противоположна isset () . Она возвращает true, если переменная не
установлена, либо имеет значение «ноль» или «пустая строка». В противном случае
она возвращает false.
echo
empty ($new); // true $new = 1; echo empty($new); // false $new = ""; echo empty($new); // true $new = 0; echo empty($new) // true $new = "Buon giorno"; echo empty($new); // false unset ($new); echo empty($new) / |
Функции ~5...() //
true
Функции is int(), is integer() и islong() синонимичны и определяют, является ли
переменная целым числом.
is double(), is float () и is real() определяют, является ли переменная числом с
плавающей запятой.
is string(), is array() и is object() работают аналогично с соответствующими
типами данных.
$PrcductID
= "432BB" if (is string ($ProductID)) ( echo ("String"); } |
Функции ...val()
РНР предоставляет еще один способ явного задания типа данных переменной: функции
intval (), doubleval () и strval (). Эти функции нельзя использовать для
преобразования массивов и объектов.
$ProductID
= “432BB”; $I = initval ($ProductID,16); //$I = (decimal)275131 |
Функция intval () может принимать необязательный второй аргумент, указывающий основание исчисления, используемое при преобразовании. По умолчанию используется основание 10 (десятичные числа). Ниже в примере задано основание 16 (шестнадцатеричные числа):
$ProductID
= “432BB”; $I = initval ($ProductID,16); //$I = (decimal)275131 |
“432BB” было интерпретировано как пятизначное шестнадцатеричное число.
All materials
® by
IATP/Belarus
©2003Голубь
Update:25.05.03