好的,所以我对以下内容有点好奇
$string = "Hello world!";
$files = (object)[
"file" => (object)[
"name" => "filename.txt",
"tmp_name" => "tempfile.txt"
]
];
如果我试图回应以下内容...... echo "$string";
它确实有效。但是这echo "$files->file->name";
它不起作用。为什么两者都是字符串。我理解一个是一个对象,另一个是字符串,但为什么对象中的字符串不能被解析。有人可以解释一下吗?
答案 0 :(得分:2)
这里没有解除引用的任何内容。这是关于php理解你想要打印的内容。
是否要打印$files
对象和字符串'->file->name'
?
或者您要打印$files->name
属性和字符串'->name'
?
或者您是否要打印name
属性的file
属性或$files
属性的值?
正确的代码是
echo "{$files->file->name}";
或者只是:
echo $files->file->name;
更多信息here
答案 1 :(得分:1)
在解析你的字符串时,php不知道你的变量是什么,什么不是(它会在第一个-
停止,因为它不能成为变量名的一部分......)。
您可以使用{...}
:
<?php
$string = "Hello world!";
$files = (object)[
"file" => (object)[
"name" => "filename.txt",
"tmp_name" => "tempfile.txt"
]
];
echo "{$files->file->name}";