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

Преобразование целого числа в строку в PHP

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

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

С точки зрения обслуживания его очевидное, что вы пытаетесь сделать, а не некоторые другие более эзотерические ответы. Конечно, это зависит от вашего контекста.

Есть много способов сделать это.

Дополнительную информацию см. В Руководстве по ручным манипуляциям PHP.

Но вы можете захотеть привыкнуть к кастингам. Поскольку кастинг – это правильный способ добиться чего-то подобного.

Другой способ заключается в инкапсуляции в кавычки:

Существует несколько способов «преобразовать» целое число в строку в PHP.

Традиционным способом CS было бы преобразование переменной в виде строки

Вы также можете использовать неявное преобразование типа PHP и интерполяцию строк

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

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

Все эти ответы велики, но все они возвращают вам пустую строку, если значение равно нулю.

или это может быть:

Существует много возможных способов преобразования:

Вы можете либо использовать оператор периода, либо конкатенировать ему строку (и она будет передана в строку строкой):

Или, вернее, вы можете просто набрать целое число в строку:

Я бы сказал, что это зависит от контекста. strval () или оператор кастинга (строка), однако в большинстве случаев PHP решит, что хорошо для вас, если вы используете его с помощью echo или printf … Одна маленькая заметка: die () нуждается в строке и не будет отображаться int 🙂

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

Источник

Есть ли простой способ преобразовать число в слово в PHP?

в PHP есть простой способ преобразовать число в слово? Например, 27 to двадцать семь.

12 ответов

Я нашел некоторые (2007/2008) исходный код онлайн и как это авторское право, но я могу использовать его свободно и изменять его, как я хочу, поэтому я помещаю его здесь и повторно лицензирую под CC-Wiki:

есть Numbers_Words пакета in PECL. Он делает именно то, о чем вы просите. Поддерживаются следующие языки:

Я нашел две ссылки для этого. The первый Это бесплатный класс PHP, который вы можете использовать,второй является примером функции, которую вы могли бы посмотреть и скопировать или использовать для написания своих собственных.

я переписал код выше, чтобы соответствовать стандартному американскому письменному формату номера слова.

используя класс NumberFormatter, легко получить преобразование в слова.

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

Итак, этот класс будет переводить цифры до 999 Centillion, 999 etc. (например, строка длиной 9s 306 символов). Любое число больше этого, и функция просто возвращает глупое сообщение.

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

reallyBig::longform(‘-C55LL-M5-4-a-9u7-71m3-M8’); вывод: negative five billion, five hundred fifty-four million, nine hundred seventy-seven thousand, one hundred thirty-eight

на numberformat метод не является необходимым для любой другой метод. Это просто там, если вы хотите проверить действительно длинный переведенный номер. Поскольку все эти функции обрабатывают числа как строки, они не запускаются против ограничений PHP.

Источник

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

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

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

Если вы хотите, чтобы переменная принудительно вычислялась как определенный тип, смотрите раздел приведение типов. Если вы хотите изменить тип переменной, смотрите 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: Приведение типов

Приведение типа — это преобразование значения одного типа в значение другого типа.

Есть два вида приведения типов:

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

Чтобы выполнить явное приведение, нужно указать в круглых скобках имя требуемого типа непосредственно перед приводимым значением или переменной:

Запись имени типа в круглых скобках называется оператором приведения типа. Допускаются следующие операторы приведения типов:

Приведение к целому числу

Строки преобразуются по следующим правилам:

Для других типов поведение преобразования в integer не определено. Поэтому не нужно полагаться на любое наблюдаемое поведение, так как оно может измениться без предупреждения.

Приведение к числу с плавающей точкой

Строки преобразуются по следующим правилам:

Приведение к булеву типу

Следующие значения в результате преобразования дают значение FALSE :

Приведение к строке

Булево значение TRUE преобразуется в строку «1», а значение FALSE преобразуется в «» (пустую строку):

Целое число или число с плавающей точкой преобразуется в строку, состоящую из цифр числа:

Массивы всегда преобразуются в строку «Array» :

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

Для преобразования объекта в строку, объект должен иметь метод __toString() :

Приведение к NULL

Приведение к типу NULL не удаляет переменную и её значение, а лишь возвращает значение типа NULL :

Источник

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

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:
7+(\.1+)?
with
3+\.2+
*/

Источник

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

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