PHP相当于.NET/Java';s toString()
如何将PHP变量的值转换为字符串 我在寻找比用空字符串连接更好的东西:PHP相当于.NET/Java';s toString(),php,string,Php,String,如何将PHP变量的值转换为字符串 我在寻找比用空字符串连接更好的东西: $myText = $myVar . ''; 与Java或.NET中的ToString()方法类似。将其置于双引号中应该可以: $myText = "$myVar"; 您始终可以创建一个名为.ToString($in)的方法,该方法返回 $in . ''; 如何转换PHP的值 变量到字符串 可以使用或函数将值转换为字符串。(编辑:如前所述) 当您将其用作字符串时,它也应自动为您铸造。您可以使用: PHP手册的第页中
$myText = $myVar . '';
与Java或.NET中的
ToString()
方法类似。将其置于双引号中应该可以:
$myText = "$myVar";
您始终可以创建一个名为.ToString($in)的方法,该方法返回
$in . '';
如何转换PHP的值
变量到字符串
可以使用或函数将值转换为字符串。(编辑:如前所述)
当您将其用作字符串时,它也应自动为您铸造。您可以使用:
PHP手册的第页中有关于字符串转换和转换的更多详细信息,包括布尔值和空值的特殊处理。如果要转换除简单类型(如整数或布尔值)以外的任何类型,则需要为尝试转换的类型编写自己的函数/方法,否则PHP将只打印类型(如数组、Google Sniffer或Biet)。PHP是动态类型的,就像Chris Fournier说的,“如果你像字符串一样使用它,它就会变成字符串”。如果您希望对字符串的格式进行更多的控制,那么这就是您的答案。这是通过类型转换完成的:
$strvar = (string) $var; // Casts to string
echo $var; // Will cast to string implicitly
var_dump($var); // Will show the true type of the variable
$var = (string)$varname;
在一个类中,您可以使用神奇的方法定义输出的内容。一个例子如下:
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);
对于原语,只需使用
(string)$var
或直接打印此变量即可。PHP是动态类型化语言,变量将动态转换为字符串
如果要将对象转换为字符串,则需要定义返回字符串的方法。禁止此方法引发异常。您正在查找:
string strval(混合$var)
获取变量的字符串值。
有关详细信息,请参阅有关字符串的文档
有关转换为的详细信息
绳子
此函数不执行格式化
在返回的值上。如果你是
正在寻找格式化数字文件的方法
值作为字符串,请参见
sprintf()或数字格式()
您可以使用类型转换:
$strvar = (string) $var; // Casts to string
echo $var; // Will cast to string implicitly
var_dump($var); // Will show the true type of the variable
$var = (string)$varname;
或字符串值:
$var = strval($varname);
或设置类型:
$success = settype($varname, 'string');
// $varname itself becomes a string
就类型杂耍而言,它们都为同一事物工作。使用:
您也可以像这样使用它:
$myText = print_r($myVar,true)."foo bar";
这将$myText
设置为字符串,如:
array (
0 => '11',
)foo bar
用于获取更多信息(变量类型,…):
另一个选项是使用内置功能:
<?php
$foo = "5bar"; // string
$bar = true; // boolean
settype($foo, "integer"); // $foo is now 5 (integer)
settype($bar, "string"); // $bar is now "1" (string)
?>
这实际上是在变量上执行转换,与类型转换不同,它允许您有一种转换为多种类型的通用方法。双引号也可以。。。它应该创建一个字符串,然后在两个空字符串之间追加/插入铸造字符串值$myVar。除了Thomas G.Mayfield给出的答案之外: 如果您按照字符串铸造手册的链接进行操作,则需要了解一个非常重要的特殊情况: (string)cast更可取,尤其是当变量$a是一个对象时,因为PHP将根据其对象模型调用\uuu toString()magic方法(如果在实例化$a的类中定义了该方法) PHP的功能类似于
function castToString($instance)
{
if (is_object($instance) && method_exists($instance, '__toString')) {
return call_user_func_array(array($instance, '__toString'));
}
}
(字符串)转换操作是PHP5+编程的推荐技术,使代码更面向对象。在我看来,这是一个很好的例子,说明了设计与其他OOP语言(如Java/C#/等)的相似性(差异性),也就是说,它以自己特殊的PHP方式(无论是为了好还是为了价值)。对于对象,您可能无法使用cast操作符。相反,我使用
json\u encode()
方法
例如,以下内容将输出到错误日志:
error_log(json_encode($args));
文档中说,您还可以执行以下操作:
$str = "$foo";
和演员一样,但我觉得它看起来更漂亮
资料来源:
$my_std_obj_result = $SomeResponse->return->data; // Specific to object/implementation
$my_string_result = implode ((array)$my_std_obj_result); // Do conversion
我认为值得一提的是,通过使用输出缓冲,您可以捕获变量中的任何输出(如
print\u r
,var\u dump
):
<?php
ob_start();
var_dump($someVar);
$result = ob_get_clean();
?>
感谢:
当预期字符串变量具有前导零(例如077543)时,前面答案中的一些方法(如果不是全部的话)会失败 转换此类变量的尝试无法获得预期的字符串,因为该变量已转换为基数8(八进制) 所有这些将使
$str
的值为32611:
您还可以使用PHP函数。我使用。它可以处理每一种PHP类型,并且非常灵活(如果您愿意,可以对其进行扩展)。正如其他人所提到的,对象需要一个
\u toString
方法才能转换为字符串。未定义该方法的对象仍然可以使用该函数生成字符串表示
此函数用于返回对象的唯一标识符。只要对象没有被破坏,该id可以用作存储对象或标识对象的哈希键。一旦对象被销毁,它的散列可以被其他对象重用
我有一个带有\uuuuToString
方法的基本对象类,该方法默认调用md5(spl\u Object\u hash($this))
以使输出明显唯一,因为spl\u Object\u hash的输出在对象之间看起来非常相似
这对于调试将变量初始化为对象的代码特别有用,之后在代码中怀疑它已更改为其他对象。简单地将变量回显到日志中可以揭示对象散列的变化(或不变化)。我认为这个问题有点误导,因为, Java中的toString()不仅仅是一种将某些内容转换为字符串的方法。这就是via(string)或string.valueOf()所做的,它在PHP中也可以工作
// Java
String myText = (string) myVar;
// PHP
$myText = (string) $myVar;
请注意,这可以
$no = 077543
$str = (string)$no;
$str = "$no";
$str = print_r($no,true);
$str = strval($no);
$str = settype($no, "integer");
$parent_category_name = "new clothes & shoes";
// To make it to string option one
$parent_category = strval($parent_category_name);
// Or make it a string by concatenating it with 'new clothes & shoes'
// It is useful for database queries
$parent_category = "'" . strval($parent_category_name) . "'";
// Java
String myText = (string) myVar;
// PHP
$myText = (string) $myVar;
// Java
class SomeClass{
public String toString(){
return "some string representation";
}
}
// PHP
class SomeClass{
public function __toString()
{
return "some string representation";
}
}
// Java
new SomeClass().toString(); // "Some string representation"
// PHP
strval(new SomeClass); // "Some string representation"
$no = 421337 // A number in PHP
$str = "$no"; // In PHP, stuff inside "" is calculated and variables are replaced
$str = print_r($no, true); // Same as String.format();
$str = settype($no, 'string'); // Sets $no to the String Type
$str = strval($no); // Get the string value of $no
$str = $no . ''; // As you said concatenate an empty string works too