PHP эквивалент .NET / Java toString ()

In [1]: class test(object):
    def __init__(self):
        self.pants = 'pants'
    @property
    def p(self):
        return self.pants
    @p.setter
    def p(self, value):
        self.pants = value * 2
   ....: 
In [2]: t = test()
In [3]: t.p
Out[3]: 'pants'
In [4]: t.p = 10
In [5]: t.p
Out[5]: 20
536
задан DarkMukke 12 December 2018 в 16:08
поделиться

11 ответов

Можно использовать операторы кастинга :

$myText = (string)$myVar;

существует больше деталей для строкового кастинга и преобразования в раздел Strings из руководства PHP, включая специальную обработку для булевских переменных, и аннулирует.

776
ответ дан Tom Mayfield 12 December 2018 в 16:08
поделиться

PHP с динамическим контролем типов, таким образом, как Chris Fournier сказал, "Если Вы используете его как строка, это становится строкой". При поиске большего количества управления форматом строки тогда , printf является ответом.

1
ответ дан Peter Mortensen 12 December 2018 в 16:08
поделиться

При преобразовании чего-нибудь кроме простых типов как целые числа или булевские переменные необходимо было бы записать собственную функцию/метод для типа, который Вы пытаетесь преобразовать, иначе PHP просто распечатает тип (такой как массив, GoogleSniffer или Биде).

1
ответ дан Peter Mortensen 12 December 2018 в 16:08
поделиться

Можно всегда создавать метод, названный.ToString ($in), который возвращается

$in . '';  
1
ответ дан Peter Mortensen 12 December 2018 в 16:08
поделиться

Помещение его в двойных кавычках должно работать:

$myText = "$myVar";
16
ответ дан Peter Mortensen 12 December 2018 в 16:08
поделиться

Поскольку примитивы просто используют (string)$var или немедленно печатают эту переменную. PHP является динамически типизированным языком, и переменная будет литой для строкового представления на лету.

, Если Вы хотите преобразовать объекты в строки, необходимо будет определить __toString() метод, который возвращает строку. Этому методу запрещают выдать исключения.

18
ответ дан Michał Rudnicki 12 December 2018 в 16:08
поделиться

, Как я преобразовываю значение переменной PHP для строкового представления?

значение А может быть преобразовано в строку с помощью (строковый) бросок или strval () функция. (Редактирование: Как Thomas, также указанный).

Это также должно быть автоматически литым для Вас, когда Вы используете его в качестве строки.

33
ответ дан Community 12 December 2018 в 16:08
поделиться

Это сделано с преобразованием типа:

$strvar = (string) $var; // Casts to string
echo $var; // Will cast to string implicitly
var_dump($var); // Will show the true type of the variable

В классе можно определить то, что производится при помощи волшебного метода __toString . Пример ниже:

class Bottles {
    public function __toString()
    {
        return 'Ninety nine green bottles';
    }
}

$ex = new Bottles;
var_dump($ex, (string) $ex);
// Returns: instance of Bottles and "Ninety nine green bottles"

еще Некоторые примеры преобразования типа:

$i = 1;

// int 1
var_dump((int) $i);

// bool true
var_dump((bool) $i);

// string "1"
var_dump((string) 1);
303
ответ дан Ross 12 December 2018 в 16:08
поделиться

Вы ищете strval :

string strval (mixed $ var)

Получите строковое значение переменной. См. Документацию по строке для больше информации о преобразовании в строка.

Эта функция не выполняет форматирование по возвращаемому значению. Если ты ищу способ отформатировать числовой значение в виде строки, см. sprintf () или number_format ().

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

Вы можете либо использовать typecasting:

$var = (string)$varname;

или StringValue:

$var = strval($varname);

или SetType:

$success = settype($varname, 'string');
// $varname itself becomes a string

Они все работают для одной и той же вещи в терминах Type-Juggling.

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

Используйте print_r :

$myText = print_r($myVar,true);

Вы также можете использовать его как:

$myText = print_r($myVar,true)."foo bar";

Это установит $ myText в строку, например:

array (
  0 => '11',
)foo bar

Используйте var_export , чтобы получить немного больше информации (с типами переменных, ...):

$myText = var_export($myVar,true);
126
ответ дан 22 November 2019 в 22:23
поделиться
Другие вопросы по тегам:

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