如何将类对象转换为字符串

时间:2014-10-18 15:32:21

标签: php

我有这个代码,但是当我运行它时,它说对象无法转换为字符串。

    $db = Database::getDB();
    $query = "SELECT * FROM products WHERE productID = '$product_id'";
    $result = $db->query($query);
    $row = $result->fetch();
    $category = CategoryDB::getCategory($row['categoryID']);
    $fileName = new Product($category, $row['productCode']);


    $dir = "../images/";
    unlink($dir.DIRECTORY_SEPARATOR.$fileName);

2 个答案:

答案 0 :(得分:0)

您可以使用魔术方法__toString

class Product
{
    public $fileName;

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

每当您将对象视为字符串(例如将其打印出来)时,此方法将处理它。结果字符串将是此方法返回的任何内容。

也就是说,将Product对象转换为文件名字符串似乎并不合乎逻辑。也许你更喜欢getFilename()方法。

答案 1 :(得分:0)

你在写:

$fileName = new Product($category, $row['productCode']);

后来你在做:

unlink($dir.DIRECTORY_SEPARATOR.$fileName);

正如您所看到的,您正在尝试将对象$ filename用作字符串。 这是不可能做到的,或者至少它不是一个好习惯(Magic __toString())。您需要检查对象产品以获取可允许的方法 你要提取文件名。

例如:

unlink($dir.DIRECTORY_SEPARATOR.$fileName->getFileName());