php строку в число int

Php строку в число int

Примером автоматического преобразования типа является оператор сложения ‘+‘. Если любой из операндов является числом с плавающей точкой, то все операнды интерпретируются как числа с плавающей точкой, результатом будет также число с плавающей точкой. В противном случае операнды будут интерпретироваться как целые числа и результат также будет целочисленным. Обратите внимание, что это НЕ меняет типы самих операндов; меняется только то, как они вычисляются. Некоторые практические примеры:

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

Если вы хотите, чтобы переменная принудительно вычислялась как определенный тип, смотрите раздел приведение типов. Если вы хотите изменить тип переменной, смотрите settype().

Если вы хотите протестировать любой из примеров, приведенных в данном разделе, вы можете использовать функцию var_dump().

Приведение типов

Приведение типов в PHP работает так же, как и в C: имя требуемого типа записывается в круглых скобках перед приводимой переменной. Пример:

Допускаются следующие приведения типов:

Обратите внимание, что внутри скобок допускаются пробелы и символы табуляции, поэтому следующее равносильно по своему действию:

Совет: вместо приведения переменной к строке, вы можете заключить ее в двойные кавычки.

Преобразование в тип Boolean (двоичные данные)

При преобразовании в логический тип, следующие значения рассматриваются как FALSE:

пустая строка и строка «0»

массив с нулевыми элементами

объект с нулевыми переменными-членами

специальный тип NULL (включая неустановленные переменные)

Все остальные значения рассматриваются как TRUE (включая любой ресурс).

Внимание: -1 считается TRUE, как и любое ненулевое (отрицательное или положительное) число!

Преобразование в тип Integer (целые числа)

Преобразование из типа Boolean

Преобразование из типа Float

При преобразовании из числа с плавающей точкой в целое, число будет округлено в сторону нуля.

Если число с плавающей точкой превышает пределы целого (как правило, это +/- 2.15e+9 = 2^31 ), результат будет неопределенным, так как целое не имеет достаточной точности, чтобы вернуть верный результат. В этом случае не будет выведено ни предупреждения, ни даже замечания

Внимание! Никогда не приводите неизвестную дробь к целому, так как это может иногда дать неожиданные результаты, например:

echo (int) ( ( 0.1 + 0.7 ) * 10 ); // выводит 7!
?>

Преобразование из типа String

Преобразования из других типов

Для других типов поведение преобразования в целое не определено. В настоящее время поведение такое же, как если бы значение сперва было преобразовано в булев тип. Однако не полагайтесь на это поведение, так как он может измениться без предупреждения.

Преобразование в тип Float (числа с плавающей точкой)

О том, когда и как строки преобразуются в числа с плавающей точкой смотрите здесь. Для значений других типов преобразование будет таким же, как если бы значение сначала было преобразовано в целое, а затем в число с плавающей точкой. Дополнительную информацию смотрите в разделе Преобразование в целое.

Преобразование в тип String (строки)

Целое ( integer) или число с плавающей точкой ( float) преобразуется в строку, представленную числом, состоящим из его цифр (включая показатель степени для чисел с плавающей точкой).

NULL всегда преобразуется в пустую строку.

Вы также можете преобразовать значения PHP в строки для постоянного хранения. Этот метод называется сериализацией и может быть выполнен при помощи функции serialize(). Кроме того, если в вашей установке PHP есть поддержка WDDX, вы можете сериализовать значения PHP в структуры XML.

Преобразование в тип Array (массивы)

Для любого из типов: integer, float, string, boolean и resource, если вы преобразуете значение в массив, вы получите массив с одним элементом (с индексом 0), являющимся скалярным значением, с которого вы начали.

Если вы преобразуете в массив объект (object), вы получите в качестве элементов массива свойства (переменные-члены) этого объекта. Ключами будут имена переменных-членов.

Если вы преобразуете в массив значение NULL, вы получите пустой массив.

Преобразование в тип Object (объекты)

Преобразование в тип Resource (ресурсы)

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

Преобразование строк в числа

Если строка распознается как числовое значение, результирующее значение и тип определяется так как показано далее.

Строка будет распознана как float, если она содержит любой из символов ‘.’, ‘e’, или ‘E’. Иначе она будет определена как целое.

Более подробную информацию об этом преобразовании смотрите в разделе о strtod(3) документации Unix.

Если вы хотите протестировать любой из примеров этого раздела, вы можете скопировать и вставить его и следующую строку, чтобы увидеть, что происходит:

Не ожидайте получить код символа, преобразовав его в целое (как вы могли бы сделать, например, в Си). Для преобразования символов в их коды и обратно используйте функции ord() и chr().

Источник

Как преобразовать в число строку в PHP?

Очень часто нам приходится работать с числовой информацией, которая представлена в виде строк. В результате возникает необходимость в преобразования строки в число. Язык программирования PHP предлагает нам несколько возможностей для этого. Речь идёт о специальных встроенных в PHP функциях, значительно облегчающих программисту задачу преобразования строки в число. Давайте их рассмотрим.

Преобразование строки в число функцией intval()

Представим, что у нас есть строка, включающая в себя один символ — «2». Вот, как будет выглядеть PHP-код преобразования этой строки в число с помощью встроенной функции intval() :

На выходе получим 2, но уже в виде числа, а не строки.

Остаётся добавить, что вышеописанная функция работает в PHP разных версий: 4, 5, 7+.

Преобразование строки в число путём приведения типов

Возможность приведения типов есть во многих языках программирования, и PHP исключением не является. В PHP мы тоже можем поменять тип переменной, применив для этого синтаксис приведения типов: (int)$variable, (float)$variable. Посмотрим, как это выглядит в коде:

Результатом будет следующий вывод:

Приведение типов можно успешно использовать и в PHP 5 и в PHP 7+.

Преобразование строки в число с помощью settype()

В принципе, вышеперечисленных способов вполне хватит для выполнения преобразования строки в число в PHP. Если же хотите знать больше, ждём вас на наших курсах!

Источник

Php строку в число int

Casting objects to arrays is a pain. Example:

$test = new MyClass ();
echo ‘

/*
Array
(
[MyClasspriv] => priv_value
[*prot] => prot_value
[pub] => pub_value
[MyClasspriv] => second_pub_value
)
*/

?>

Yes, that looks like an array with two keys with the same name and it looks like the protected field was prepended with an asterisk. But that’s not true:

/*
MyClasspriv (13) => priv_value
0 77 121 67 108 97 115 115 0 112 114 105 118
*prot (7) => prot_value
0 42 0 112 114 111 116
pub (3) => pub_value
112 117 98
MyClasspriv (11) => second_pub_value
77 121 67 108 97 115 115 112 114 105 118
*/

?>

The char codes show that the protected keys are prepended with ‘\0*\0’ and private keys are prepended with ‘\0’.__CLASS__.’\0′ so be careful when playing around with this.

The object casting methods presented here do not take into account the class hierarchy of the class you’re trying to cast your object into.

Value of uninitialized variable of different data types.

settype($a,’bool’);
var_dump($a); //boolean false

settype($b,’string’);
var_dump($b); //string » (length=0)

settype($c,’array’);
var_dump($c); //array (size=0) empty

settype($d,’int’);
var_dump($d); //int 0

settype($e,’float’);
var_dump($e); //float 0

You REALLY must be aware what you are doing, when you cast a lot in your code. For example, you can accidentaly change FALSE to TRUE (probably not in one line, like here):

if(TRUE === (boolean) (array) (int) FALSE) <
kaboom();
>

namaroulis stated «I found it tricky to check if a posted value was an integer»; to test if a variable is a number or a numeric string (such as form input, which is always a string), you must use is_numeric():

in response to bhsmither at gmail.com

It raises a warning because of the bad enquoted variable

It seems (unset) is pretty useless. But for people who like to make their code really compact (and probably unreadable). You can use it to use an variable and unset it on the same line:

?>

With the unset cast:

?>

Hoorah, we lost another line!

Checking for strings to be integers?
How about if a string is a float?

/* When checking for floats, we assume the possibility of no decimals needed. If you MUST require decimals (forcing the user to type 7.0 for example) replace the sequence:
1+(\.9+)?
with
3+\.3+
*/

Источник

Как преобразовать строку в число в PHP?

29 ответов:

обычно вам не нужно этого делать, так как PHP будет принуждать тип для вас в большинстве случаев. Для ситуаций, когда вы хотите явно преобразовать тип,cast это:

есть несколько способов сделать это:

приведите строки к числовым примитивным типам данных:

выполнение математических операций над строками:

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

однако, в этом очень мало смысла, так как PHP будет делать это автоматически во время использования этой переменной, и он будет приведен к строке в любом случае во время вывода.

обратите внимание, что вы можете сохранить пунктирные числа в виде строк, потому что после приведения к плаванию он может быть изменен непредсказуемо, из-за природы чисел с плавающей точкой.

или вы можете использовать:

немного грязно, но это работает.

можно использовать (int)_value_ например.

In PHP можно использовать intval(string) or floatval(string) функции для преобразования строк в числа.

вы всегда можете добавить ноль к нему!

просто небольшое примечание к ответам, которые могут быть полезны и безопаснее в некоторых случаях. Вы можете сначала проверить, действительно ли строка содержит допустимое числовое значение, а затем преобразовать его в числовой тип (например, если вам нужно манипулировать данными, поступающими из БД, которая преобразует ints в строки). Вы можете использовать is_numeric() а то floatval() :

Я обнаружил, что в JavaScript простой способ преобразовать строку в число, чтобы умножить его на 1. Он решает проблему конкатенации, потому что символ » + «имеет несколько применений в JavaScript, в то время как символ» * » предназначен исключительно для математического умножения.

основываясь на том, что я видел здесь в отношении PHP, автоматически готов интерпретировать строку, содержащую цифры, как число (и комментарии о добавлении, поскольку в PHP » + » является чисто математическим добавлением), этот трюк с умножением отлично работает и для PHP.

Я проверил его, и он действительно работает. Хотя в зависимости от того, как вы приобрели строку, вы можете применить к ней функцию trim (), прежде чем умножать на 1.

вот функция, которую я написал, чтобы упростить вещи для себя:

Он также возвращает сокращенные версии boolean, integer, double и real.

вызывая тип с parseNumeric установленным в true преобразует числовые строки перед проверкой типа.

Тип («5», true) вернет int

тип («3.7», true) вернет float

тип(«500») вернет строку

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

Edit

Если вы хотите определить, являются ли объекты функциями, добавьте этот случай к коммутатору:

кроме Boykodev ответ я предлагаю следующее:

вы можете использовать это для преобразования строки в int в PHP.

но лучшим решением является использование:

попробуйте использовать что-то вроде этого:

вы можете изменить тип данных следующим образом

по историческим причинам «double» возвращается в случае float.

для вашего конкретного случая вы можете просто умножить на 1, чтобы преобразовать строку в число в php. PHP заботится о плавающей и целочисленной автоматически.

PHP сделает это за вас в пределах

Источник

Как преобразовать строку в число в PHP?

29 ответов

обычно вам не нужно это делать, так как PHP будет принуждать тип для вас в большинстве случаев. Для ситуаций, когда вы хотите явно преобразовать тип,cast это:

есть несколько способов сделать это:

приведите строки к числовым примитивным типам данных:

выполнение математических операций над строками:

на любом (слабо типизированном) языке вы всегда можете привести строку к числу, добавив к нему ноль.

однако в этом очень мало смысла, так как PHP будет делать это автоматически во время использования этой переменной, и он будет приведен к строке в любом случае во время вывода.

обратите внимание, что вы можете сохранить пунктирные числа в виде строк, потому что после литья в float он может быть изменен непредсказуемо, из-за природы чисел float.

Вы можете использовать:

или вы можете использовать:

немного грязно, но это работает.

можно использовать (int)_value_ например.

на PHP можно использовать intval(string) or floatval(string) функции для преобразования строк в числа.

вы всегда можете добавить к нему ноль!

просто небольшая заметка к ответам, которые могут быть полезны и безопаснее в некоторых случаях. Вы можете проверить, действительно ли строка содержит допустимое числовое значение, и только затем преобразовать его в числовой тип (например, если вам нужно манипулировать данными, поступающими из БД, которая преобразует ints в строки). Вы можете использовать is_numeric() а то floatval() :

Я обнаружил, что в JavaScript простой способ преобразовать строку в число, чтобы умножить его на 1. Он решает проблему конкатенации, потому что символ » + «имеет несколько применений в JavaScript, в то время как символ» * » предназначен исключительно для математического умножения.

основываясь на том, что я видел здесь относительно PHP, автоматически готов интерпретировать строку, содержащую цифры, как число (и комментарии о добавлении, так как в PHP » + » предназначен исключительно для математического добавления), этот трюк умножения отлично работает и для PHP.

я протестировал его, и он работает. Хотя в зависимости от того, как вы приобрели строку, вы можете применить к ней функцию trim() перед умножением на 1.

вот функция, которую я написал, чтобы упростить вещи для себя:

Он также возвращает сокращенные версии boolean, integer, double и real.

вызов типа с параметром parseNumeric, равным true, преобразует числовые строки перед проверкой типа.

type («5», true) вернет int

type («3.7», true) вернет float

type («500») вернет строку

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

редактировать

Если вы хотите определить, являются ли объекты функциями, добавьте этот случай к коммутатору:

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *