php - php抽象类中的构造函数有什么用

标签 php oop constructor abstract-class

在询问之前我已经点击了这个链接 - Answer is in JAVA context这是 constructor in PHP .

由于我是初学者,我在 OOP 概念中实现我的 PHP 代码,所以我真的很想知道用法和好处或何时在 PHP 抽象类中使用构造函数。

请提供现实世界中的示例以更好地理解概念。

PS - 虽然我关注 PHP Manuals理解 OOP 概念,但我发现它有点难以理解,任何对后续链接/博客的帮助都非常可观。

我的代码-

<?php

abstract class grandClass
{
    abstract function grandmethod();

    function __construct()
    {
        echo "I am grandClass constructor";
    }
}

abstract class parentClass extends grandClass
{
    abstract function raiseFlag();

    function grandmethod()
    {
        echo "This is grandmethod!!!","<br />";
    } 

    public function getValue()
    {
        echo "Zero is the blackhole for the numbers!!","<br />";
    }
}

class childClass extends parentClass
{

    function raiseFlag()
    {
        echo "Peaceful thoughts!!","<br />";
    }

}

$myobj = new childClass();
$myobj->raiseFlag();
$myobj->getValue();
$myobj->grandmethod(); 

最佳答案

抽象类中的构造函数与具体类中的构造函数相同。在需要时使用构造函数,例如,如果您需要初始化一些数据或分配一些资源。

我举个例子:

abstract class Db
{
    protected $pdo;

    public function __construct($pdo)
    {
        $this->pdo = $pdo;
    }

    abstract function select($table, $fields);
}

class Db_Mysql extends Db
{
    public function select($table, $fields)
    {
        // Build MySQL specific select query
        // then execute it with $this->pdo
    }
}

class Db_Pgsql extends Db
{
    public function select($table, $fields)
    {
        // Build PostgreSQL specific select query
        // then execute it with $this->pdo
    }
}

// Usage:
$db = new Db_Mysql($pdo);

$db->select('users', array('id', 'name'));

关于php - php抽象类中的构造函数有什么用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14272598/

相关文章:

php 结果集到数组

php - 如何在mysql查询Php中计算时间

php - Google Maps API + SQL 数据库 + 渲染点 PHP

php - codeigniter 中的表单验证自定义消息?

c++ - 使用聚合初始化列表优于构造函数的优势?

java - 为什么 Java 没有像 C++ 中那样的初始化列表?

c++ - 如何初始化一个类然后卡住它的参数值

arrays - 在元胞数组中存储句柄对象时性能下降

php - 如何处理复杂的用户状态?

c++ - 在 vector 初始化中为对象调用非默认构造函数