Відмінності між версіями «Перетворення до рядкового типу в PHP»
м (перейменував «Перетворення до рядкового типу в JavaScript» на «Перетворення до рядкового типу в PHP») |
|
(Немає відмінностей)
|
Поточна версія на 08:28, 7 квітня 2012
Вы можете преобразовывать значения в строковый тип, используя приведение (string), либо функцию strval().
В выражениях, где необходима строка, преобразование происходит автоматически. Это происходит, когда вы используете функции echo или print либо когда вы сравниваете значение переменной со строкой.
Булевое (boolean) значение TRUE преобразуется в строку "1", а значение FALSE представляется как "" (пустая строка). Этим способом вы можете преобразовывать значения в обе стороны - из булева типа в строковый и наоборот.
Целое (<A href="/learnphp/datatypes/?integer" target="_blank">integer</A>) или число с плавающей точкой (<A href="/learnphp/datatypes/?float" target="_blank">float</A>) преобразуется в строку, представленную числом, состоящим из его цифр (включая показатель степени для чисел с плавающей точкой).
Массивы всегда преобразуются в строку "Array", так что вы не можете отобразить содержимое массива (<A href="/learnphp/datatypes/?array" target="_blank">array</A>), используя echo() или print(), чтобы узнать, что он содержит. Чтобы просмотреть один элемент, вам нужно сделать что-то вроде echo $arr['foo'].
Объекты всегда преобразуются в строку "Object". Если вы хотите вывести значение переменной-члена объекта (<A href="/learnphp/datatypes/?object" target="_blank">object</A>) с целью отладки, прочтите следующие абзацы. Если вы хотите получить имя класса требуемого объекта, используйте <A href="/functions/?get_class" target="_blank">get_class()</A>.
Ресурсы всегда преобразуются в строки со структурой "Resource id #1", где 1 - это уникальный номер ресурса (<A href="/learnphp/datatypes/?resource" target="_blank">resource</A>), присвоенный ему PHP во время выполнения. Если вы хотите получить тип ресурса, используйте <A href="/functions/?get_resource_type" target="_blank">get_resource_type()</A>.
<a href="/learnphp/datatypes/?null" target="_blank">NULL</a> всегда преобразуется в пустую строку.
Вывод массивов, объектов или ресурсов не предоставляет вам никакой полезной информации о самих значениях. Более подходящий способ вывода значений для отладки - использовать функции <A href="/functions/?print_r" target="_blank">print_r()</A> и <A href="/functions/?var_dump" target="_blank">var_dump()</A>.
Вы также можете преобразовывать значения PHP в строки для постоянного хранения. Этот метод называется <a href="/learnphp/datatypes/?serialize" target="_blank">сериализацией</a> и может быть выполнен при помощи функции <A href="/functions/?serialize" target="_blank">serialize()</A>. Кроме того, если в вашей установке PHP есть поддержка <A href="/functions/?cat=wddx" target="_blank">WDDX</A>, вы можете сериализовать значения PHP в структуры XML.
<a name="strtoint"></a>Преобразование строк в числа
Если строка распознается как числовое значение, результирующее значение и тип определяется так как показано далее.
Строка будет распознана как <A href="/learnphp/datatypes/?float" target="_blank">float</A>, если она содержит любой из символов '.', 'e', или 'E'. Иначе она будет определена как целое.
Значение определяется по начальной части строки. Если строка начинается с верного числового значения, будет использовано это значение. Иначе значением будет 0 (ноль). Верное числовое значение - это одна или более цифр (могущих содержать десятичную точку), по желанию предваренных знаком, с последующим необязательным показателем степени. Показатель степени - это 'e' или 'E' с последующими одной или более цифрами.
<?php
$foo = 1 + "10.5"; // $foo это float (11.5)
$foo = 1 + "-1.3e3"; // $foo это float (-1299)
$foo = 1 + "bob-1.3e3"; // $foo это integer (1)
$foo = 1 + "bob3"; // $foo это integer (1)
$foo = 1 + "10 Small Pigs"; // $foo это integer (11)
$foo = 4 + "10.2 Little Piggies"; // $foo это float (14.2)
$foo = "10.0 pigs " + 1; // $foo это float (11)
$foo = "10.0 pigs " + 1.0; // $foo это float (11)
?>
Более подробную информацию об этом преобразовании смотрите в разделе о strtod(3) документации Unix.
Если вы хотите протестировать любой из примеров этого раздела, вы можете скопировать и вставить его и следующую строку, чтобы увидеть, что происходит:
<?php
echo "\$foo==$foo; тип: " . gettype ($foo) . "<br />\n";
?>
Не ожидайте получить код символа, преобразовав его в целое (как вы могли бы сделать, например, в C). Для преобразования символов в их коды и обратно используйте функции <A href="/functions/?ord" target="_blank">ord()</A> и <A href="/functions/?chr" target="_blank">chr()</A>.
Смотрите также: <a href="/learnphp/datatypes/?mn" target="_blank">манипуляции с типами данных</a>