好的,所以我对以下内容有一点好奇
$string = "Hello world!";
$files = (object)[
"file" => (object)[
"name" => "filename.txt",
"tmp_name" => "tempfile.txt"
]
];如果我尝试回显下面的代码... echo "$string";,它确实可以工作。但是这个echo "$files->file->name";它不能工作。为什么如果两个都是字符串。我知道一个是对象,另一个是字符串,但是为什么对象中的字符串不能被取消引用。有人能解释一下吗?
发布于 2017-01-25 03:38:36
这里没有关于取消引用的内容。这是关于php理解你想要打印的东西。
是否要打印$files对象和字符串'->file->name'
还是要打印$files->name属性和字符串'->name'
或者要打印$files对象的name属性或file属性的值?
正确的代码是
echo "{$files->file->name}";或者只是:
echo $files->file->name;更多信息here
发布于 2017-01-25 03:38:44
当解析你的字符串时,php不知道什么是你变量的一部分,什么不是(它会在第一个-处停止,因为它不能是变量名的一部分……)。
您可以使用{...}来解决这个问题
<?php
$string = "Hello world!";
$files = (object)[
"file" => (object)[
"name" => "filename.txt",
"tmp_name" => "tempfile.txt"
]
];
echo "{$files->file->name}";https://stackoverflow.com/questions/41837453
复制相似问题