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

Взгляните на этот пример . Этот запрос должен работать:

var leftFinal = from left in lefts
                join right in rights on left equals right.Left into leftRights
                from leftRight in leftRights.DefaultIfEmpty()
                select new { LeftId = left.Id, RightId = left.Key==leftRight.Key ? leftRight.Id : 0 };

464
задан YanDatsiuk 24 June 2019 в 21:41
поделиться

7 ответов

Вы можете использовать функцию 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";
749
ответ дан 22 November 2019 в 22:47
поделиться

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

Одно небольшое замечание: die () нужна строка и не будет показывать int:)

0
ответ дан 22 November 2019 в 22:47
поделиться

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

$integer = 93;
$stringedInt = $integer . "";

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

$integer = 93;
$stringedInt = (string) $integer;
3
ответ дан 22 November 2019 в 22:47
поделиться

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

0
ответ дан 22 November 2019 в 22:47
поделиться

Существует несколько способов «преобразовать» целое число в строку в 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";

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

9
ответ дан 22 November 2019 в 22:47
поделиться
$foo = 5;

$foo = $foo . "";

Теперь $ foo - это строка.

Но вы можете привыкнуть к приведению типов. Поскольку приведение типов является правильным способом сделать что-то в этом роде:

$foo = 5;
$foo = (string)$foo;

Другой способ - заключить в кавычки:

$foo = 5;
$foo = "$foo"
43
ответ дан 22 November 2019 в 22:47
поделиться

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

Два примера:

 $str = (string) $int;
 $str = "$int";     

Подробнее см. В Руководстве PHP по Подтасовке типов .

83
ответ дан 22 November 2019 в 22:47
поделиться
Другие вопросы по тегам:

Похожие вопросы: