2013-01-11 10 views
5

में अमूर्त वर्ग में निर्माता के उपयोग मैं पूछ रहा से पहले इस लिंक को पहले से ही पीछा किया है - Answer is in JAVA context और इस constructor in PHP के लिए।क्या php

जब से मैं स्टार्टर हूँ, OOP अवधारणाओं में मेरे PHP कोड के अपने कार्यान्वयन, इसलिए मैं वास्तव में उपयोग और लाभ या जब पीएचपी सार कक्षा में निर्माता का उपयोग करने के बारे में पता करने के लिए तैयार हूँ।

असली दुनिया के संदर्भ में एक उदाहरण अवधारणा बेहतर हड़पने के लिए प्रदान करें।

पीएस - हालांकि मैं ओओपी अवधारणाओं को समझने के लिए 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

सार कक्षा में निर्माता ठोस वर्ग में के समान है। उपयोग कंस्ट्रक्टर्स जब वे उदाहरण के लिए की जरूरत है,, यदि आप कुछ डेटा intialize या कुछ संसाधनों सौंपने होंगे। जब नहीं जब आरटीओ का उपयोग करें और

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

आप उचित समझ के लिए अधिक पाठ जोड़ने कृपया कर सकते हैं, हालांकि मैं सार कक्षा में निर्माता के उपयोग के बारे में पूछा ...:

मैं आपको एक उदाहरण देता हूँ। । + कोड के लिए 1 :) – swapnesh

+0

मेरी अद्यतन जवाब है, बेहतर समझ के लिए भी संशोधित कोड देखें। – Lauris