2013-01-11 56 views
5

我之前已询问此链接 - Answer is in JAVA context和此为constructor in PHP。由于我是首发,我在OOP概念中实现了我的PHP代码,因此我非常愿意了解PHP抽象类中的使用和好处,或者何时使用构造函数。什么是抽象类中的构造函数的使用php

请提供一个在现实世界中的例子来更好地理解这个概念。

PS - 虽然我在跟着PHP Manuals了解面向对象的概念,但我觉得有点难以理解,任何有关链接/博客的帮助都非常可观。

我的代码 -

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

回答

27

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

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')); 
+0

可以请你增加更多的文字正确理解,但我问了一下构造函数的抽象类的使用......当RTO使用和:

我给你举个例子。 。+ 1代码:) – swapnesh

+0

查看我的更新答案,还修改了代码,以便更好地理解。 – Lauris