如何使用foreach获取php的值和名称

如何使用foreach获取php的值和名称,php,Php,我要获取此变量的值: $File = new FileFromDB($_GET['filename']); 通过尝试此代码: foreach($File as $key => $name){ print_r( "$key => $name"); } 但它不工作,当我打印$file时,它会显示 FileFromDB对象([filename:FileFromDB:private]=>tp4.php) pliz帮助我如何在没有所有这些语法的情况下只获取“tp4.php”。

我要获取此变量的值:

$File = new FileFromDB($_GET['filename']);  
通过尝试此代码:

foreach($File as $key => $name){
     print_r( "$key => $name");
}
但它不工作,当我打印$file时,它会显示

FileFromDB对象([filename:FileFromDB:private]=>tp4.php)


pliz帮助我如何在没有所有这些语法的情况下只获取“tp4.php”。

如果您只想要tp4.php,请按如下方式操作:

foreach($File as $key => $name){

    echo $name;

}
$file = new FileFromDB($_GET['filename']);
$filename = $file->getFilename();

$file
是类型
FileFromDB
中的对象<代码>文件名是该对象的私有(!)属性。(您的var转储显示了这一点)

要访问文件名,
FileFromDB
需要提供访问属性的公共方法:

class FileFromDB

    ...

    public function getFilename() {
        return $this->filename;
    }

    ...

}
然后像这样使用它:

foreach($File as $key => $name){

    echo $name;

}
$file = new FileFromDB($_GET['filename']);
$filename = $file->getFilename();

$File
对象的结构是什么?与所有这些
foreach
内容不同,只需执行
print\r($File)
并将输出添加到您的问题中。您必须区分数组和对象。两者都有内在的东西,但它们仍然是不同的东西!print_r($File)show FileFromDB Object([filename:FileFromDB:private]=>tp4.php)这个问题似乎是离题的,因为它在php手册中有明确的描述。这将输出大量其他内容,
$File
对象中的所有内容。是的,我刚刚看到$File甚至不是数组,所以甚至不需要循环它。看看hek2mgl的答案。非常感谢它现在起作用了:):(y)