PHP PDO: Do the fetch styles FETCH_CLASS and FETCH_INTO fetch into private object properties?

前端 未结 4 780
我在风中等你
我在风中等你 2020-12-17 23:06

Pretty short question, here is an example:

$prepared = $this->pdo->prepare(\"SELECT * FROM Users WHERE ID = :ID\");
$statement = $prepared->execute(         


        
4条回答
  •  心在旅途
    2020-12-17 23:52

    But event with PDO::FETCH_CLASS there is a problem for private properties for subclasses. E.g.

    class Animal
    {
        private $color;
        public function getColor()
        {
            return $this->color;
        }
    }
    class Cat extends Animal
    {
    }
    
    $statement->setFetchMode(PDO::FETCH_CLASS, "Cat" );
    $someCat = $statement->fetch();
    
    echo $someCat->getColor();  //empty
    print_r( $someCat );
    /*
    now have strange output like:
    [color:Animal:private] => 
    [color] => grey
    */
    

    But if you set the property to protected - it works fine

提交回复
热议问题