Есть ли способ преобразовать целое число в строку в PHP?
strval()
не меняет и $variable
внутренне.
Есть ли способ преобразовать целое число в строку в PHP?
strval()
не меняет и $variable
внутренне.
Ответы:
Вы можете использовать strval()
функцию для преобразования числа в строку.
С точки зрения обслуживания очевидно, что вы пытаетесь сделать, а не некоторые другие более эзотерические ответы. Конечно, это зависит от вашего контекста.
$var = 5;
// Inline variable parsing
echo "I'd like {$var} waffles"; // = "I'd like 5 waffles
// String concatenation
echo "I'd like ".$var." waffles"; // I'd like 5 waffles
// Explicit cast
$items = (string)$var; // $items === "5";
// Function call
$items = strval($var); // $items === "5";
strval(0.999999997)
возвращает 1
.
Есть много способов сделать это.
Два примера:
$str = (string) $int;
$str = "$int";
Смотрите руководство по PHP для жонглирования типов для получения дополнительной информации.
0
в ""
не может быть плохим; это действительно зависит от приложения. Тем не менее, вы делаете хорошую мысль.
$foo = 5;
$foo = $foo . "";
Теперь $foo
это строка.
Но вы можете привыкнуть к кастингу. Поскольку кастинг - это правильный способ сделать что-то в этом роде:
$foo = 5;
$foo = (string)$foo;
Другой способ - заключить в кавычки:
$foo = 5;
$foo = "$foo"
Есть несколько способов «преобразовать» целое число в строку в PHP.
Традиционный способ информатики - преобразовать переменную в строку:
$int = 5;
$int_as_string = (string) $int;
echo $int . ' is a '. gettype($int) . "\n";
echo $int_as_string . ' is a ' . gettype($int_as_string) . "\n";
Вы также можете воспользоваться неявным преобразованием типов PHP и интерполяцией строк:
$int = 5;
echo $int . ' is a '. gettype($int) . "\n";
$int_as_string = "$int";
echo $int_as_string . ' is a ' . gettype($int_as_string) . "\n";
$string_int = $int.'';
echo $int_as_string . ' is a ' . gettype($int_as_string) . "\n";
Наконец, как и выше, любая функция, которая принимает и возвращает строку, может быть использована для преобразования и целого числа. Учтите следующее:
$int = 5;
echo $int . ' is a '. gettype($int) . "\n";
$int_as_string = trim($int);
echo $int_as_string . ' is a ' . gettype($int_as_string) . "\n";
Я бы не рекомендовал последний вариант, но я видел дикий код, который основывался на этом поведении, поэтому подумал, что передам его.
Все эти ответы великолепны, но все они возвращают вам пустую строку, если значение равно нулю.
Попробуйте следующее:
$v = 0;
$s = (string)$v ? (string)$v : "0";
Вы можете использовать оператор period и связать с ним строку (и она будет приведена к типу):
$integer = 93;
$stringedInt = $integer . "";
Или, более правильно, вы можете просто ввести приведение целого числа к строке:
$integer = 93;
$stringedInt = (string) $integer;
Как хорошо показывают ответы, да, есть несколько способов. Однако в PHP вам редко нужно это делать. «Догматический способ» написания PHP - это полагаться на свободную систему типизации языка, которая будет прозрачно приводить тип по мере необходимости. Для целочисленных значений это обычно без проблем. Вы должны быть очень осторожны со значениями с плавающей точкой.
strlen(12345);
но не для. $x = 12345; echo $x[2];
Все эти функции приведения довольно полезны, и многие программисты все чаще проверяют свои типы.
Я бы сказал, что это зависит от контекста. Можно использовать strval () или оператор приведения (string). Тем не менее, в большинстве случаев PHP решит, что хорошо для вас, если, например, вы используете его с echo или printf ...
Одно небольшое замечание: die () нужна строка и не будет показывать int :)
$amount = 2351.25;
$str_amount = "2351.25";
$strCorrectAmount = "$amount";
echo gettype($strCorrectAmount); //string
Таким образом, эхо будет возвращать строку .
$integer = 93;
$stringedInt = $integer.'';
быстрее чем
$integer = 93;
$stringedInt = $integer."";
echo
это используете (используется в так называемом строковом контексте ).