Взгляните на этот пример . Этот запрос должен работать:
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 };
Вы можете использовать функцию 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 () или оператор приведения (строка) может использоваться. Однако в большинстве случаев PHP решит, что для вас лучше, если, например, вы используете его с echo или printf ...
Одно небольшое замечание: die () нужна строка и не будет показывать int:)
Вы можете использовать оператор точки и присоединить к нему строку (и она будет преобразована в строку):
$integer = 93;
$stringedInt = $integer . "";
Или, более правильно, вы можете просто ввести приведение целого числа в строку:
$integer = 93;
$stringedInt = (string) $integer;
Как хорошо видно из ответов, да, есть несколько способов. Однако в PHP вам это редко нужно. «Догматический способ» написания PHP - это полагаться на свободную систему типизации языка, которая будет прозрачно приводить тип по мере необходимости. Для целочисленных значений это обычно не проблема. Однако вы должны быть очень осторожны со значениями с плавающей запятой.
Существует несколько способов «преобразовать» целое число в строку в 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";
Я бы не рекомендовал последний вариант, но я видел в дикой природе код, основанный на этом поведении, поэтому решил передать его.
$foo = 5;
$foo = $foo . "";
Теперь $ foo
- это строка.
Но вы можете привыкнуть к приведению типов. Поскольку приведение типов является правильным способом сделать что-то в этом роде:
$foo = 5;
$foo = (string)$foo;
Другой способ - заключить в кавычки:
$foo = 5;
$foo = "$foo"
Есть много способов сделать это.
Два примера:
$str = (string) $int;
$str = "$int";
Подробнее см. В Руководстве PHP по Подтасовке типов .