Чи є спосіб перетворити ціле число в рядок в 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)
return 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";
Існує багато можливих способів конверсії:
$input => 123
sprintf('%d',$input) => 123
(string)$input => 123
strval($input) => 123
settype($input, "string") => 123
Ви можете або скористатися оператором періоду і об'єднати рядок до нього (і він буде введений у рядок):
$integer = 93;
$stringedInt = $integer . "";
Або, правильніше, ви можете просто ввести передане ціле число до рядка:
$integer = 93;
$stringedInt = (string) $integer;
Оскільки відповіді тут добре демонструють, так, є кілька способів. Однак у PHP вам дуже рідко потрібно це робити. "Догматичний спосіб" писати PHP - це покладатися на слабку систему введення мови, яка прозоро примушує тип в міру необхідності. Для цілих значень це зазвичай без проблем. Однак ви повинні бути дуже обережними з значеннями з плаваючою комою.
strlen(12345);
але не для $x = 12345; echo $x[2];
всіх цих функцій кастингу є досить корисними, і багато програмістів все більше і більше перевіряють їх тип.
Я б сказав, це залежить від контексту. strval () або може бути використаний оператор кастингу (string). Однак у більшості випадків PHP вирішить, що для вас добре, якщо, наприклад, ви користуєтесь ехою або printf ...
Одна невеличка примітка: die () потребує рядку і не відображатиметься жодних інт :)
$amount = 2351.25;
$str_amount = "2351.25";
$strCorrectAmount = "$amount";
echo gettype($strCorrectAmount); //string
Тож відлуння буде повернутим рядком .
$integer = 93;
$stringedInt = $integer.'';
швидше, ніж
$integer = 93;
$stringedInt = $integer."";
echo
його використовуєте в контексті так званого рядка .