Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/253.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么对象不能转换为字符串_Javascript_Php_Language Agnostic - Fatal编程技术网

Javascript 为什么对象不能转换为字符串

Javascript 为什么对象不能转换为字符串,javascript,php,language-agnostic,Javascript,Php,Language Agnostic,在编程语言中,我注意到对象不能转换为字符串。为什么他们以这种方式实施 php class abc { public $Name; public $Number; function MrFunction() { /* bla bla bla */ } } $foo = new abc(); print_r($foo); //output - abc Object ( [Name] => [Number] => ) echo '<br>'; ech

在编程语言中,我注意到对象不能转换为字符串。为什么他们以这种方式实施

php

class abc {
    public $Name;
    public $Number;
    function MrFunction() { /* bla bla bla */ }
}

$foo = new abc();

print_r($foo); //output - abc Object ( [Name] => [Number] => )
echo '<br>';
echo($foo); //output - Catchable fatal error: Object of class abc could not be converted to string on line 11
p.S-我不想把这些对象转换成字符串,我只想知道为什么在javascript中对象不能转换成字符串。 您需要使用
JSON.stringify

var obj={a:1,b:2};
JSON.stringify(obj); // output "{"a":1,"b":2}"
在PHP中。您需要使用
序列化

echo serialize($foo);

通常,当您像第一个示例中那样直接打印一个对象时,实际打印的是对象的
toString()
方法

在PHP中,您可以手动重写类中的
\uuuu toString()
方法,如下所示:

class abc {
    public $Name;
    public $Number;
    function MrFunction() { /* bla bla bla */ }

    function __toString() {
        return $this->Name.' - '.$this->Number;
    }
}
然后您将能够执行
echo new abc()


PS:按照惯例,类以大写开头,变量以小写开头。因此,它将是
Abc
name
number
而不是
Abc
name
number

为什么要转换它?您不能回显对象。无法回显对象的原因是什么。您必须首先转换它。php可以回送变量、数组等,。。。。那些不是弦。那么为什么不能回送对象
回送
数组呢?如何在php中
echo
数组??对象无法转换为字符串的原因是什么?其他数据类型可以…例如varible、array…。可以转换为string可以转换,但必须手动指定它们的转换方式,覆盖或定义toString方法。
class abc {
    public $Name;
    public $Number;
    function MrFunction() { /* bla bla bla */ }

    function __toString() {
        return $this->Name.' - '.$this->Number;
    }
}