20

私は尋ねる前にすでにこのリンクをたどっています-答えはJAVAコンテキストにあり、これはPHPのコンストラクター用です。

私は初心者なので、OOPの概念でPHPコードを実装しているので、PHP抽象クラスでの使用法と利点、またはコンストラクターをいつ使用するかについて本当に知りたいと思っています。

概念をよりよく理解するために、実際のコンテキストで例を提供してください。

PS-私はOOPの概念を理解するためにPHPマニュアルに従っていますが、理解するのが少し難しいと感じていますが、フォローするリンク/ブログの助けは本当にありがたいです。

私のコード-

<?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(); 
4

1 に答える 1

46

抽象クラスのコンストラクタは、具象クラスのコンストラクタと同じです。データを初期化する必要がある場合やリソースを割り当てる必要がある場合など、必要なときにコンストラクターを使用します。

例を挙げましょう:

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'));
于 2013-01-11T06:53:37.960 に答える