PHP эквивалент метода toString() из .NET/Java
Как мне преобразовать значение переменной PHP в строку?
Я искал способ сделать это лучше, чем конкатенировать с пустой строкой:
$myText = $myVar . '';
Что-то подобное методу ToString()
в Java или .NET.
5 ответ(ов)
Вы можете использовать приведение типа:
$var = (string)$varname;
или функцию strval
:
$var = strval($varname);
или settype
:
$success = settype($varname, 'string');
// теперь $varname сам становится строкой
Все эти методы выполняют одну и ту же задачу в контексте "приведения типов" (Type-Juggling).
Для примитивных типов просто используйте (string)$var
или сразу выведите эту переменную. PHP — это динамически типизированный язык, и переменные будут автоматически приведены к строковому типу.
Если вы хотите преобразовать объект в строку, вам нужно определить метод __toString()
, который будет возвращать строку. Учтите, что этот метод не должен выбрасывать исключения.
Да, обрамление переменной в двойные кавычки должно сработать:
$myText = "$myVar";
При использовании двойных кавычек PHP выполнит интерполяцию переменной $myVar
, и её значение будет вставлено в строку, присваиваемую переменной $myText
. Если вы хотите получить значение переменной, убедитесь, что она определена ранее в коде.
Проблема, с которой вы столкнулись, связана с тем, что числа, начинающиеся с нуля, в PHP интерпретируются как восьмеричные (октальные) числа. Таким образом, когда вы присваиваете переменной $no
значение 077543
, PHP трактует это как восьмеричное число, и в результате происходит конвертация в десятичное (что дает вам 32611
).
Если вы хотите сохранить строку с ведущим нулем, вам нужно задать значение переменной $no
как строку, а не как число. Вот несколько способов сделать это правильно:
Использовать одинарные кавычки:
$no = '077543';
Использовать двойные кавычки:
$no = "077543";
Если вы получаете это значение в виде числа, вы можете явно преобразовать его в строку, а не записывать с ведущим нулем:
$no = (string) 077543; // Это вернет '32611', что нам не нужно
Чтобы избежать данной проблемы, всегда используйте строки для представления данных с ведущими нулями. Например:
$no = '077543'; // сохраняем как строку
$str = $no; // здесь $str будет '077543'
Таким образом, вы сможете сохранить и работать со значением с ведущими нулями.
Должны работать и двойные кавычки... это должно создать строку, затем нужно ДОБАВИТЬ/ВСТАВИТЬ приведённое к строковому типу значение $myVar
между двумя пустыми строками.
Как проверить, содержит ли строка конкретное слово?
Функции startsWith() и endsWith() в PHP
Удалить пустые элементы массива
В чем разница между строками в одинарных и двойных кавычках в PHP?
Как получить последний символ строки в PHP?