object oriented php

59

Upload: liar-zishan

Post on 21-Jul-2016

37 views

Category:

Documents


7 download

DESCRIPTION

PHP object Oriented

TRANSCRIPT

Ae‡R± Awi‡q‡›UW wcGBPwc

iPbv I m¤cv`bv t eyKwewW

www.bookbd.info

1

wcÖq,

cvVK Avgiv †Póv K‡iwQ evsjv fvlvq Ae‡R± Awi‡q‡›UW wcGBPwc GKwU

eB wjL‡Z ZviB avivevwnKZvq GB B-eyKwU wj‡LwQ | ZvB Avcbv‡`i †Kvb

gZvgZ _vK‡j Avg‡`i cvVv‡eb ([email protected]) eBwU‡Z Avgv‡`i

Avwb”QvK…Z fv‡e hw` †Kvb fzj _v‡K Zvn‡j ¶gv my›`i „wó‡Z †`Lvi Rb¨ Abyia

KiwQ |

2

DrmM© t evsjv‡`‡ki mKj gyw³‡hvØv‡`i

3

3

3

1: Ae‡R± Awi‡q‡›UW †cÖvMÖvwgs....................................................................................... 5

2: Ae‡R± Awi‡q‡›UW j¨v½y‡q‡Ri myweav........................................................................... 5

3: †ewmK OOP……………………………………………………………………. 6

4: K¬vm wK.................................................................................................................. 8

5: Ae‡R± wK..............................................................................................................10

6: Ae‡R± •Zwi...........................................................................................................11

7: K¬vm †g_W..............................................................................................................13

8: †g_W •Zwi (Method Declaration).......................................................................14

9: †g_W wiUv©b Ges c¨vivwgUvi (Method Return and Parameter)..............................17

10: Kb÷ª¨vKUi (Constructor)..................................................................................22

11: Kb÷¨vKUi G f¨vjy cvVv‡bv......................................................................................24

12: †W÷¨vKUi (Destructor).......................................................................................26

13: gwWdvqvi (Modifiers)........................................................................................29

14: this Kx IqvW......................................................................................................35

15: Bb‡nwi‡UÝ (Inheritance)...................................................................................36

16: Bb‡nwi‡UÝ Gi myweav.............................................................................................37

17: Bb‡nwi‡UÝ †cÖvMÖvg.................................................................................................37

18: cwjgiwdRg (Polymorphism)............................................................................41

19: cwjgiwdRg ‡cÖvMÖvg wmbU¨vKª....................................................................................42

20: †qbK¨vcmy¨‡jkb (Encaptulation).......................................................................45

21: †cÖvMÖvwgs G †qb‡Kcmy¨‡jkb (Encaptulation)........................................................45

22: †qbK¨vcmy¨‡jkb †cÖvMÖvwgs.......................................................................................45

23: A¨vemUªvKU (Abstract).......................................................................................47

24: †cÖvMÖvwgs A¨vemUª¨vKU.............................................................................................47

25: A¨ve÷ª¨vKU K¬vm wmbU¨vK&ª........................................................................................47

26: G¨vemUª¨vKU †cÖvMÖvwgs..............................................................................................48

27: B›Uvi‡dBm (Interface).......................................................................................50

28: B›Uvi‡dBm K¬v‡mi wmbUª¨vKª......................................................................................51

29: B›Uvi‡dBm K¬vm †cÖvMÖvg.................................................................................... 52.

GK bR‡i m~wPcÎ

4

Avgv‡`i Pviw`‡K Avgiv wK †`L‡Z cvB| Avgiv †`LwQ †hgb Mvwo, gvbyl, wewìs, Kjg,

†cb, †Uwej BZ¨vw`| A_©vr Avgv‡`i ev¯Íe Rxe‡b Avgiv PZz©w`‡K hv †`wL †cÖvMÖvwgs G Zv‡K Ae‡R± e‡j|

Avi Ae‡R± Awi‡q‡›UW †cÖvMÖvwgs j¨v½y‡qR n‡”Q Ggb GKwU j¨v½y‡qR †hwU Ae‡R±‡K Dc¯vcb

(represent) K‡i| †cÖvMÖvwgs Gi fvlvq Ae‡R± Awi‡q‡›UW †cÖvMÖvwgs Ae‡R± (object) †K Dc¯vcb

(represent) K‡i, ‡hwUi †WUv wdì Ges A¨vwUªweDU _vK‡e|

wPÎ 1: Mvwo (Ae‡R±) wPÎ 2: eB (Ae‡R±)

Dc‡ii Qwe‡Z Mvwo Ges eB y‡UvB n‡”Q Ae‡R±|

GwU mnR nIqvi Kvi‡Y mdUIq¨vi Gi Ae‡R± g‡Wj Gi mv‡_ ev¯Íe Rxe‡bi Ae‡R± Gi

mv‡_ wgj Av‡Q|

Object Oriented Programming (OOP) Gi †KvW¸‡jv cybivq e¨envi Kiv hvq|

A_v©r GKB Ae‡R± wewfbœ †cÖvMÖvg G e¨envi Kiv hvq|

Ae‡R± ¸‡jv‡K Lye mn‡R †gb‡UBb Kiv hvq|

OOP †K gwWdvB Kiv A‡bK mnR|

A‡bK eo mgm¨v‡K OOP Gi gva¨‡g Lye mn‡R mgvavb Kiv hvq|

Lye mn‡R GKwU †Kv‡Wi/ †cÖvMÖvg Gi mv‡_ bZzb †Kvb wdPvi ms‡hvM Kiv hvq|

Ae‡R± Awi‡q‡›UW †cÖvMÖvwgs wcGBPwc

1: Ae‡R± Awi‡q‡›UW †cÖvMÖvwgs:

2: Ae‡R± Awi‡q‡›UW j¨v½y‡q‡Ri myweav

5

†cªvMÖv‡gi †WUv Ges dvskb‡K AevwÂZ n¯Í‡ÿc †_‡K mn‡R iÿv Kiv hvq Ges mxgve×ZvI

w`‡q †`Iqv hvq|

Ae‡R± Awi‡q‡›UW j¨v½y‡qR e¨envi Ki‡j †cÖvMÖv‡gi RwUjZv A‡bK K‡g hvq|

GLb Avgiv Kw¤úDUv‡ii C WªvB‡f wM‡q htdocs Gi wfZ‡i wM‡q GKwU dvBj I‡cb (open)

Ki‡ev Ges dvBjwUi bvg n‡”Q p1.php| Gevi dvBjwU‡Z wb‡¤œi †KvW¸‡jv wjLyb:

class bookbd

{

}

‡cÖvMÖvg wmbU¨vKª 1 : Ae‡R± Awi‡q‡›UW K¬vm

<?php php U¨vM ïiæ Kijvg

Kx-IqvW (GwU wjL‡Z nq)

class bd K¬vm Gi bvg bd

{ wØZxq eª¨v‡KU w`‡q ïiæ Ki‡Z nq|

†fwi‡qej †bBg

public $city="dhaka"; ‡fwi‡qej Gi gvb dhaka

gwWdvqvi (Kx-IqvW)

3: †ewmK OOP:

6

} wØZxq eªv‡KU w`‡q ‡kl (A_©vr K¬vmwU †kl nj)

BKzqvj mvBb

new GwU n‡”Q Kx-IqvW

$x=new bd; K¬vm †bBg

GLv‡b †fwi‡qej x n‡”Q GKwU Ae‡R±

Ae‡R± x

echo $x->city; bd K¬vm Gi †fwi‡qej

†bBg †¯úm/A¨v‡iv Acv‡iUi

AvDUcyU †`Lv‡bvi Rb¨

?> wcGBPwc U¨vM †kl Kiv nj|

‡cÖvMÖvg wmbU¨vKª 2

<?php

class bd

{

public $city="dhaka";

}

$x = new bd;

7

echo $x->city;

?>

†cÖvMÖvg p1.php: †ewmK oo wcGBPwc †cÖvMÖvg Dc‡ii †cÖvMÖvgwU (p1) ivb Ki‡j AvDUcyU dhaka

†`Lv‡e

AvDUcyU: dhaka

K¬vm n‡”Q Ggb GKwU wRwbm †hLv‡b Ae‡R±‡K wWdvBb Kiv nq| A_©vr Ae‡R± m¤ú‡K© me wKQz

K¬v‡m ejv _v‡K| †hgb Avwg hw` ewj eB GKwU Ae‡R± Zvn‡j eBwU m¤ú‡K© me wKQz K¬v‡m ejv _vK‡e|

eBwU Kvjvi †Kgb, †cBR msL¨v KZ, †jLK †K, g~j¨ KZ BZ¨vw` K¬v‡m ejv _vK‡e| K¬vm Ae‡R±wU‡K

wi‡cÖ‡R›U (represent) K‡i| A_v©r Ae‡R±i Gi mKj †cÖvcvwU©R Ges A¨vwUªweDU (Attribute) ¸‡jv

K¬v‡m ejv _v‡K| Pjyb Av‡iKwU D`vniY †`wL| ‡hgb Kvi (car) n‡”Q GKwU Ae‡R±, GLb Kvi Ae‡R±

Gi Rb¨ K¬vmwU‡Z ejv Av‡Q Gi Kvjvi wK, Kvi Gi KqwU `iRv BZ¨vw`|

gv_v

nvZ

cv

wPÎ 3: GKwU gvby‡li eY©bv

Dc‡ii Qwe‡Z gvbylwUi †h y‡Uv nvZ, j¤v 5.6 BwÂ, †PvL, BZ¨vw` A_©vr gvbylwU m¤ú‡K© hv wKQz ej‡ev

†mUvB nj K¬vm| myZivs K¬v‡m GKwU Ae‡R± m¤ú‡K© we¯ÍvwiZ ejv _v‡K|

4: K¬vm wK:

8

class cow GwU n‡”Q GKwU cow K¬vm

{

GwU n‡”Q K¬vm Gi ewW A_v©r GLv‡b Ae‡R± m¤ú©‡K me wKQz GLv‡b ejv _vK‡e|

}

wb‡¤œ K¬vm Gi GKwU D`vniY †`Iqv nj

<?php

class opc

{

public $name="Kamal Ahmed";

†fjy¨

GwU n‡”Q †fwi‡qej

}

K¬vm wb‡R wb‡R KvR K‡i bv hw` bv Zv‡K Kj (call) Kiv bv nq| †cÖvMÖvg ivb Ki‡e wKš‧ K¬vm Gi wfZi

†h †g_W Ges †cÖvcvwU©R Av‡Q †m¸‡jv KvR Ki‡e bv| ZvB GLb †`L‡ev wKfv‡e K¬vm †K ivb (execute)

Ki‡Z nq|

K¬vm †K ivb Ki‡Z n‡j cÖ_‡g K¬v‡mi Ae‡R± •Zwi (create) Ki‡Z n‡e|

$ob=new opc;

A_v©r cÖ_‡g †h †Kvb GKwU †fwi‡qej wb‡Z n‡e †hgb GLv‡b $ob wb‡qwQ| Avi $ob B n‡”Q opc K¬vm

Gi Ae‡R±| Zvici BKzqvj (=) mvBb wj‡L wbqg Abyhvqx new Kx-IqvWwU wjL‡Z n‡e Gi ci †¯úm

(space) w`‡q K¬vm Gi bvg wj‡L †mwg‡Kvjb e¨envi Ki‡Z n‡e|

g‡b ivL‡eb mvaviYZ K¬vm Ges Ae‡R± Gi bvg †h †Kvb wKQz n‡Z cv‡i|

Pjyb GLb †`wL H ob Ae‡R±wU wK KvR K‡i|

9

cÖ_‡g Avgiv ob Ae‡R± w`‡q opc K¬vm Gi †fwi‡qej $name Gi gvb (value) †`L‡Z Pvw”Q|

echo $ob->name;

GLb Avgiv AvDUcyU †`L‡ev Kamal Ahmed

Aek¨B g‡b ivL‡eb GB eBwU covi c~‡e© Avgv‡`i †jLv ÓwcGBPwc A¨vÛ gvBGmwKDjÓ eBwU Aek¨B

co‡eb| Ab¨_vq GB eBwU eyS‡Z Avcbvi mgm¨v n‡Z cv‡i|

<?php

include('p1.php');

class MyClass

{

public $pop = "I'm a class property!"; // pop variable in the calss

}

$obj = new MyClass; // the way to create object

echo $obj->pop; // Output the property (want to see the output of class)

?>

‡cÖvMÖvg bs p2.php: †fwi‡qej Ges K¬vm

AvDUcyU:

ev¯Íe (real world) Rxe‡bi me wKQz Ae‡R±| Avgiv hw` Avgv‡`i Pviw`‡K

ZvKvB Zvn‡j Avgiv A‡bK Ae‡R± †`L‡Z cv‡ev| †hgb Avgv‡`i Pvicv‡k Avgiv

†`L‡Z cvB †cb, †Uwej, gvbyl, evjK, evwjKv, Kw¤úDUvi, eyK, wej‡evW©, eªxR,

d¨vb, wewìs BZ¨vw`|

ev¯Íe Rxe‡b cÖ‡Z¨KwU Ae‡R± Gi y‡Uv wRwbm _v‡K GKwU n‡”Q †cÖvcvwU©R

(properties) Ab¨wU n‡”Q we‡nweqvim (behaviors)

‡hgb kvU© n‡”Q GKwU Ae‡R±, Gi †cÖvcvwU© (property) n‡”Q kvU©wUi is, mvBR

Ges †Kv¤úvwb †bBg BZ¨vw`| Ab¨w`‡K (we‡nweqvim) behaviors n‡”Q kvU©wU Mig

Ges kxZKv‡j Avivg`vqK, kvU©wU Bb K‡i Ges Bb Qvov cov hvq| Ab¨ Av‡iKwU

D`vniY †`B †hgb GKwU Kvi (car) n‡”Q Ae‡R±, GLb †`wL Gi property wK |

5: Ae‡R± wK:

10

0

Kvi Ae‡R±wUi property n‡”Q KviwUi Kvjvi Ges KviwUi eªvÛ †bBg BZ¨vw`|

Gi GwUi behaviors n‡”Q KviwU mvg‡b Ges wcQ‡b †bIqv hvq|

GLb ‡`L‡ev Ae‡R± Avgiv †Kb †cÖvMÖvwgs G e¨envi Kwi| Avgiv hLb †Kvb

K¬vm ‡jwL H K¬v‡m A‡bK †fwi‡qej, dvskb BZ¨vw` _v‡K Avi †m¸‡jv wb‡R

wb‡R KvR K‡i bv hZÿY bv ch©šÍ Ae‡R± Øviv H ¸wj‡K Avgiv Kj (WvKe) bv

Kwi | K¬v‡mi ‡fwi‡qej‡K H K¬v‡mi Ae‡R± Øviv KvR Ki‡Z n‡e| Ae‡R±

‣Zwi Ki‡Z nq †Kvb GKwU K¬v‡mi Rb¨| †hgb eB hw` GKwU K¬vm nq Zvn‡j

GKwU Ae‡R± ejv †h‡Z cv‡i BwZnvm| GLv‡b BwZnvm n‡”Q eyK K¬v‡mi

Ae‡R±| wcÖq cvVK GLv‡b Avwg †jLv¸‡jv‡K ¯^vfvweK fvlvq †jLvi †Póv K‡iwQ

†m Rb¨ nq‡Zv A‡bK fv‡jv gv‡bi evsjv e¨vKiY mshy³ †jLv nq bvB, †mRb¨

ytwLZ|

wb‡b¥ KZ¸‡jv Ae‡R± Gi Qwe †`Iqv nj|

wPÎ 4: †cb wPÎ 5: Møvm wPÎ 6: eB wPÎ 7: †Pqvi

Ae‡R± •Zwi (create) Ki‡Z n‡j †Kvb bv †Kvb GKwU K¬vm _vK‡Z n‡e| GLb Avwg Avcbv‡`i‡K

g¨vb (man) K¬vm Gi GKwU Ae‡R± ‣Zwi K‡i †`Lv‡ev| Ae‡R± ‣Zwi (create) Ki‡Z n‡j cÖ_‡g Wjvi

mvBb ($) w`‡q †h †Kvb GKwU bvg w`‡Z n‡e †hwU n‡”Q Ae‡R± †bBg Zvici BKzqvj (=) mvBb e¨envi

Ki‡Z n‡e Gici wbD (new) bvgK Kx-IqvWwU e¨envi Ki‡Z n‡e Zvici K¬v‡mi bvgwU (†h K¬v‡mi

Rb¨ Ae‡R±wU) wjL‡Z n‡e Gici y‡Uv cÖ_g eªv‡KU () w`‡q Zvici †mwg‡Kvjb (;) w`‡q †kl Ki‡Z

n‡e|

$o=new man();

Dc‡ii $o n‡”Q man K¬vm Gi Ae‡R±

6: Ae‡R± •Zwi:

11

$object=new man();

$m=new man();

$Rakib=new man();

Dc‡i $object, $m, $Rakib n‡”Q man K¬vm Gi Ae‡R± | Avcwb Ae‡R± Gi bvg †h †Kvb wKQz

w`‡Z cvi‡eb|

<?php

class human { // Name of class

public $gender='Male'; // in the gender variable assign male value

}

$manik = new human(); // create object manik

echo $manik->gender; // access the varible gender using humnan class object

//manik

?>

‡cÖvMÖvg p4.php: K¬vm Ges Ae‡R±|

AvDUcyU: Male

g‡b ivL‡eb evev Qvov †hgb mšÍvb n‡Z cv‡i bv, wVK ‡Zgwb K¬vm Qvov Ae‡R± n‡Z cv‡i bv| A‡bK

mgq †Q‡ji bvg ivLvi mgq evevi bv‡gi mv‡_ wgj †i‡L iv‡L| wKš‧ †cÖvMªvwgs G Ae‡R± •Zwi Kivi mgq

Aek¨B K¬vm Gi bvg ZLb _v‡K| mšÍvb Gi bvg †hgb †h †Kvb wKQz nq Ae‡R± Gi bvgI Avcwb †h

‡Kvb wKQz w`‡Z cv‡ib|

B-Kgvm© m¤ú‡K© we¯ÍvwiZ Rvb‡Z Avgv‡`i †jLv ÓB-Kgvm©Ó eBwU co‡Z cv‡ib| eBwU‡Z B-Kgvm© m¤ú‡K©

we¯ÍvwiZ ejv Av‡Q|

<?php

class Kool {

public $mvar = 'aMemberVar Member Variable';

public $aFuncName = 'Function of member';

function mfunc() {

print 'Mfunc is the insde of kool class';

}

}

12

$kk = new kool;

echo $kk->mfunc();

?>

‡cÖvMÖvg p5.php: K¬vm Ges Ae‡R±|

AvDUcyU: Mfunc is the insde of kool class

†g_W n‡”Q GK ai‡Yi dvskb| wbw ©ó wKQz KvR †g_W K‡i _v‡K| A_©vr †g_W me mgq GKB

ai‡Yi KvR K‡i _v‡K hvi Rb¨ GKB ai‡Yi †Kvb KvR Kivi Rb¨ †hb GKB †KvW evi evi wjL‡Z bv

nq| †m Rb¨ Avgiv ‡g_W e¨eni Ki‡Z cvwi| g‡b ivL‡eb Avgiv †Póv KiwQ †jLv¸‡jv‡K cÖPwjZ k‡ã

wjL‡Z †m Rb¨ nq‡Zv mwVK kã e¨envi n‡”Q bv †m Rb¨ Avgiv ytwLZ| ‡g_W‡K mvaviYZ Avgiv K¬v‡mi

wfZ‡i wj‡L _vwK| Avcwb PvB‡j †Kvb Z_¨ K¬vm Gi evB‡i †_‡K K¬v‡mi †g_W Gi wfZi cvVv‡Z cv‡ib|

Z‡e g‡b ivL‡Z n‡e †g_W A_ev dvskb wb‡R wb‡R ivb (execute) K‡i bv hZÿY bv ch©šÍ GwU‡K Kj

(call) Kiv bv nq| †g_W Ae‡R± †Kvb GKwU wbw ©ó KvR Ki‡Z mvnvh¨ K‡i| D`vniY wn‡m‡e ejv hvq

gvDm wK¬K A‡bKUv †g_W Gi gZ| †hgb Avgiv hLb †dvìvi I‡cb Kwi gvDm wK¬K Kwi, hLb †Kvb

dvBj I‡cb Kwi gvDm wK¬K Kwi, hLb †Kvb eªvDRvi I‡cb Kwi gvDm w`‡q wK¬K Kwi A_©vr GLv‡b me

Kv‡Ri Rb¨ gvDm wK¬K GKwU Kgb KvR|

wPÎ 8: †eøbWvi †gwkb wPÎ 9: Møvm

GKB †gwkb e¨envi K‡i Avcwb A‡bK ai‡bi Rym •Zwi Ki‡Z cv‡ib wVK †Zgwb GKB Møvm e¨envi K‡i

A‡b‡K wKQz cvb Ki‡Z cv‡ib| Ggwb A‡b‡K GKB Møvm e¨envi Ki‡Z cv‡ib|

7: K¬vm †g_W:

13

Aek¨B g‡b ivL‡eb GB eBwU covi c~‡e© Avgv‡`i †jLv wcGBPwc A¨vÛ gvBGmwKDj eBwU Aek¨B

co‡eb| Ab¨_vq GB eBwU eyS‡Z Avcbvi mgm¨v n‡Z cv‡i|

Av‡MB e‡jwQ †g_W wWK¬v‡ikb n‡”Q A‡bKUv dvskb Gi gZ| cÖ_‡g †h †Kvb GKwU K¬vm

wW‡K¬qvi Ki‡Z n‡e Zvici K¬vm Gi wfZi †g_WwU wjL‡Z n‡e| cÖ_‡g dvskb (function) bvgK Kx-

IqvWwU wjL‡Z n‡e Zvici †g_W Gi Rb¨ GKwU bvg wjL‡Z n‡e, Gici ywU cÖ_g eªv‡KU () w`‡Z n‡e,

Gici GKwU †m‡KÛ eªv‡KU ({) Gici †g_W Gi wfZi hv wjL‡Z Pvb wjLvi ci Av‡iKwU †m‡KÛ (})

eªv‡KU w`‡q †kl Ki‡Z n‡e|

‡cÖvMÖvg wmbU¨vKª 3 : dvskb (†g_W)

dvskb Kx-IqvW

†g_W †bBg

function Room() eªv‡KU

{ †m‡KÛ eªv‡KU ïiæ/‡g_W ïiæ

function glass

{

}

8: †g_W •Zwi (Method Declaration):

14

†g_W ewW echo "this is class room";

} †g_W †kl

‡cÖvMÖvg p6: †g_W wWK¬v‡ikb

<?php

class university // class name university

{

function Room() // method name Room //

{ //Start method

echo "This is class room"; // method statement // Execute only if call this method outside of

this class

} //End method

}

$obj = new university(); // after class you can use first bracket or not use

echo $obj->Room(); // Call method, method will not execute if you dont call //method

?>

‡cÖvMÖvg p6.php:†g_W wWK¬v‡ikb

AvDUcyU: This is class room

<?php

class university // class name university

{

function course() // method name Room //

{ //Start method

echo "Software Engineering "; // method statement // Execute only if

call this method outside of this class

} //End method

}

$obj = new university(); // after class you can use first bracket or not use

15

echo $obj->course(); // Call method, method will not execute if you dont call //method

?>

‡cÖvMÖvg p7.php: †g_W Kwjs

AvDUcyU: Software Engineering

<?php

class university

{

public $name = 'John'; // declare varibale name and value is john

function getName() // method name getName // function is keyword

{

//return $this->name;

echo $this->name; // when call getName method it will display John

}

}

$obj =new university();

$obj->getName();

?>

‡cÖvMÖvg p8.php: †g_W Ges †fwi‡qej

AvDUcyU: John

<?php

class university

{

public $name = 'Mohsin'; // declare varibale name and value is john

function getName() // method name getName // function is keyword

{

//return $this->name;

echo $this->name; // when call getName method it will display John

}

}

16

$obj =new university();

$obj->getName();

?>

‡cÖvMÖvg p9.php: K¬vm †fwi‡qej Ges †g_W

AvDUcyU: Mohsin

Avcwb hw` †g_‡W †Kvb f¨vjy cvVv‡Z Pvb Zvn‡j wK fv‡e cvVv‡eb| †mRb¨ †g_W Gi eªv‡K‡Ui () Gi

wfZi †fwi‡qej wjL‡Z n‡e| Avi †g_W Kj Kivi mgq f¨vjywU w`‡q w`‡Z n‡e|

penType($price) GwU n‡”Q c¨vivwgUvi

$ob->penType(2) c¨vivwgUvi f¨vjy

<?php

class pen

{

function PenType($price) // $price is parameter its vlaue come when call it

{

echo $price; // display the value of $price

}

}

$obj =new pen();

$obj->PenType(2); // passing value of $price, value is 2

?>

‡cÖvMÖvg p10.php: †g_W c¨vivwgUvi

AvDUcyU: 2

<?php

class pen

{

9: †g_W wiUv©b Ges c¨vivwgUvi (Method Return and

Parameter)

17

function PenType($price, $penName) // if more than one parameter write using comma

{

echo $price; // display the value of $price

echo $penName;

}

}

$obj =new pen();

$obj->PenType(13, "Econo"); // if want to pass more paramter value write using comma

?>

‡cÖvMÖvg p11.php: G‡Ki AwaK c¨vivwgUvi

AvDUcyU: 13Econo

<?php

class pen

{

function PenType($price, $penName, $companyName) // if more than one parameter write

using comma

{

echo $price; // display the value of $price

echo $penName;

echo $companyName;

}

}

$obj =new pen();

$obj->PenType(13, "Econo", "Ocan"); // if want to pass more paramter value write using

comma

?>

‡cÖvMÖvg p12.php:Parameter cvVv‡bv

AvDUcyU: 13EconoOcan

‡g_W †_‡K Avgiv wKfv‡e †Kvb †iRvë †c‡Z cvwi| A_©vr †g_W Gi †Kvb f¨vjy Avgiv wb‡Z

PvB †hUv e‡j †g_W wiUv©b| A_©vr †g_W †Kvb GKwU KvR K‡i Zvi f¨vjyUv hw` K¬vm A_ev ‡g_W

Gi evB‡i cvVvq †mUvB nj †g_W wiUv©b f¨vjy|

‡g_W f¨vjy cvVv‡bvi (Return) Kivi Rb¨ Return Kx-IqvWwU e¨envi K‡i| A_©vr Return 5;

GLv‡b 5 †K cvVv‡”Q †hLvb †_‡K Kj Kiv n‡”Q †mLv‡b|

<?php

18

class pen

{

function PenType()

{

return 5; // return value 5 // use return keyword to reutrn vlaue

}

}

$obj =new pen();

echo $obj->PenType(); // Here we will get 5 becuase call PenType from here

?>

‡cÖvMÖvg p13.php: wiU©vb †g_W f¨vjy

AvDUcyU: 5

<?php

class pen

{

function PenType()

{

return 45.23; // return value 5 // use return keyword to reutrn vlaue

}

}

$obj =new pen();

echo $obj->PenType(); // Here we will get 5 becuase call PenType from here

?>

‡cÖvMÖvg p14.php:†g_W wiU©vb f¨vjy

AvDUcyU: 45.23

<?php

class pen

{

function PenType()

{

return "Econo"; // return string type value like Econo

}

19

}

$obj =new pen();

echo $obj->PenType(); // Here we will get Econo

?>

‡cÖvMÖvg p15.php: w÷s wiU©vb

AvDUcyU: Econo

<?php

class pen

{

public $price=50;

function PenType()

{

return $this->price; // return string type value like Econo

}

}

$obj =new pen();

echo $obj->PenType(); // Here we will get Econo

?>

‡cÖvMÖvg p16.php:‡g_W wiU©vb †fwi‡qej

AvDUcyU: 50

20

weMxwbs Rygjv A¨vWfvÝW Rygjv cÖ‡dkbvj Rygjv Rygjv †U¤ú‡jU †gwKs

weMxwbs IqvW©‡cÖm A¨vWfvÝW IqvW©‡cÖm cÖ‡dkbvj IqvW©‡cÖm B›Uvi‡b‡U

AvZ¥Kg©ms¯vb-1 B›Uvi‡b‡U AvZ¥Kg©ms vb-2 B-Kgvm© A¨vÛ Rygjv! fvPz©gvU©

B-Kgvm© g¨v‡µvwgwWqv wWªgI‡qfvi mvP© BwÄb AcwUgvB‡Rkb A¨vWfvÝW

mvP© BwÄb AcwUgvB‡Rkb cÖ‡dkbvj mvP© BwÄb AcwUgvB‡Rkb d‡i· †UªwWs

B-gv‡K©wUs A¨vWfvÝW GBPwUGgGj wcGBPwc A¨vÛ gvB GmwKDGj

A¨vWfvÝW wcGBPwc A¨vÛ gvB GmwKDGj Ae‡R± Awi‡q‡›UW wc.GBP.wc

†WUv‡eBR gvB GmwKDGj wm †cÖvMÖvwgs Rvfv †cÖvMÖvwgs Rvfvw¯…Þ

A¨vWfvÝW d‡Uvkc A¨vWfvÝW Bjv‡÷ªUi cÖ‡dkbvj MÖvwd· wWRvBb

cÖ‡dkbvj Kw¤úDUvi †bUIqvwK©s I‡W¯‥ Ges AvD‡mvwm©s A¨vwdwj‡qU gv‡K©wU

www.bookbd.info

eyKwewW n‡”Q evsjv‡`kx cÖ‡dkbvj evsjv eB mg~‡ni I‡qemvBU| †hLvb †_‡K Avcwb B-eyK webv g~‡j¨

WvDb‡jvW Ki‡Z cvi‡eb| †h eB¸‡jv Avcbv‡K AvBwU AvDU‡mvwm©s-G cÖ‡dkbvj K¨vwiqvi M‡o Zzj‡Z

mvnvh¨ Ki‡e| G QvovI wb‡R wb‡R †Kvb cÖKvi †Uªwbs QvovB †h †Kvb wel‡qi Dci cÖ‡dkbvj `¶Zv

AR©b Ki‡Z cv‡ib GB eB¸‡jv c‡o| Avi Avcbv‡`i †Kvb civgk© _vK‡j Aek¨B Avgv‡`i‡K Rvbv‡eb,

GB wVKvbvq t- [email protected]

eyKwewW m¤úvw`Z Ab¨vb¨

eBmg~n

21

Constructor n‡”Q we‡kl ai‡Yi GKwU dvskb| dvskb‡K Kj Ki‡j GwU KvR K‡i wKš‧

Constructor A‡Uv‡gwU©K¨vwj Kj nq| A_©vr hLb Avgiv †Kvb K¬v‡mi Ae‡R± •Zwi Kwi ZLbB wKš‧ H

K¬v‡mi Constructor A‡Uv (wb‡RB) ivb Ki‡Z _v‡K|

Kb÷¨vKUi Ges †g_W Gi g‡a¨ cv_©K¨ n‡”Q Ae‡R± •Zwii (create) mgq Constructor

A‡Uv‡gwU©K¨vwj Kj nq Avi †mB Ae‡R± w`‡q †g_W A_ev dvskb‡K Kj Ki‡Z nq|

Kb÷¨vKUi wW‡K¬qvi Kivi wbqg n‡”Q cÖ_‡g function Kx-IqvWwU wjL‡Z n‡e, Zvici

AvÛvi‡¯‥vi (_) e¨envi Ki‡eb Gici Construct Kx-IqvWwU wjL‡eb Ges Zvi mv‡_

y‡Uv cÖ_g eªv‡KU () e¨envi Ki‡Z n‡e|

wb‡¤œ †`Lv‡bv n‡”Q wKfv‡e Constructor wjL‡Z nq

function_construct()

{

}

‡cÖvMÖvg wmbU¨vKª 4 : Kb÷ª¨vKUi

A_©vr Avgiv †Kvb wKQz wjL‡Z PvB‡j Constructor ewW‡Z wjL‡ev|

<?php

class human { // { this is starting bracket 1 for this class

function __construct() //

{

echo "This is Bangladesh"; // statement inside the constructor

}

} // { this is ending bracket 2 for this class human

10: Kb÷ª¨vKUi (Constructor)

22

$akash = new human(); // call consturctor automatically when create object

// Do not need to call seperately constructor

?>

‡cÖvMÖvg p17.php:†ewmK Constructor

AvDUcyU: This is Bangladesh

<?php

class human { // { this is starting bracket 1 for this class

function __construct() //

{

echo "This is Bangladesh"; // statement inside the constructor

}

} // { this is ending bracket 2 for this class human

$akash = new human(); // call consturctor automatically when create object

// Do not need to call seperately constructor

?>

‡cÖvMÖvg p17.php:Kb÷ªvKUi †cÖvMÖvg

AvDUcyU: This is Bangladesh

<?php

class human { // { this is starting bracket 1 for this class

public $p=0;

function __construct()

{

$p=15;

echo $p;

}

23

} // { this is ending bracket 2 for this class human

$akash = new human(); // call consturctor automatically when create object

// Do not need to call seperately constructor

?>

‡cÖvMÖvg p18.php:Kb÷ªvKUi D`vniY

AvDUcyU: 15

Constructor wKš‧ f¨vjy MÖnYI K‡i c¨vivwgUvi wn‡m‡e| †hgbwU †g_W f¨vjy MÖnY K‡i|

Z‡e Constructor G f¨vjy cvVv‡Z n‡e Ae‡R± Create Kivi mgq|

function _Consturct($Name) parameter 1wU

{

}

function _Construct($Name,$age) parameter 2wU

g‡b ivL‡eb Constructor G G‡Ki AwaK c¨vivwgUvi _vK‡Z cv‡i|

<?php

class human { // { this is starting bracket 1 for this class

function __construct($name)

{

echo $name;

11: Kb÷¨vKUi G f¨vjy cvVv‡bv:

24

}

} // { this is ending bracket 2 for this class human

$akash = new human('Jebin');// call consturctor automatically pass value jebin

// Do not need to call seperately constructor

?>

‡cÖvMÖvg p19.php:GKwU f¨vjy cvVv‡bv

AvDUcyU: Jebin

<?php

class human { // { this is starting bracket 1 for this class

function __construct($name, $age) // name and age two parameter value come from when create

object

{

echo $name;

echo $age;

}

} // { this is ending bracket 2 for this class human

$akash = new human('Jebin', 21);// call consturctor automatically pass value jebin

// passing two vlaue jebing and 21 during object creation

?>

‡cÖvMÖvg p20.php:Kb÷¨vKU‡i G‡Ki AwaK f¨vjy

AvDUcyU: Jebin21

25

Avgiv hLb †Kvb Ae‡R±‡K destroy (aŸsm) Ki‡Z PvB ZLb †W÷¨vKUi e¨envi

K‡i _vwK| A_©vr †Kvb K¬vm Gi •Zwi (created)Ae‡R± hw` Avcwb †kl K‡i w`‡Z Pvb A_©vr fwel¨r G

GwU Avcbvi Avi KL‡bv cÖ‡qvRb co‡ebv ZLb Avcwb Destructor e¨envi K‡i Ae‡R±wU‡K destroy

K‡i w`‡Z cv‡ib| wcGBPwc‡Z GwU‡K Garbage Collector w`‡q Kiv nq| †W÷¨vKUiI GK ai‡Yi

†g_W| Constructor Gi KvR n‡”Q Ae‡R± ‣Zwi Kiv Avi Destructor Gi KvR n‡”Q †mB Ae‡R±‡K

†kl K‡i †`Iqv| Ae‡R± hLb destroy nq destructor ZLb A‡Uv‡gwUK¨vjx Kj nq|

<?php

class X

{

public function __construct() // This is constructor

{

echo 'building an object';

}

public function __destruct() // destructor to destroy obejct

{

echo 'destroying the object';

}

}

$obj = new X(); // when create object both construct and destruct call automatically

?>

‡cÖvMÖvg p21.php:Ae‡R± Ges destroy

AvDUcyU: building an objectdestroying the object

<?php

class Yea

{

public function __destruct()

{

echo 'destroy the object';

}

12: †W÷¨vKUi (Destructor):

26

}

$obj = new Yea();

// prints Bangladesh

echo 'Banglade4sh ';

?>

‡cÖvMÖvg p22.php:destroy Ae‡R±

AvDUcyU: Banglade4sh destroy the object

g‡b ivL‡Z n‡e mKj KvR †kl Kivi ci Ae‡R± destroy Ki‡Z n‡e A_©vr destruct †g_WwU

wjL‡Z n‡e K¬v‡mi †k‡l †hb Zvi Av‡M Ab¨vb¨ KvR¸‡jv †kl n‡q hvq|

<?php

class A

{

public function printMsg()

{

echo 'I still exist';

}

public function __destruct()

{

echo 'destroying the object';

}

}

$b = new A();

$d = $c = $b;

$b = null;

$c->printMsg();

$d->printMsg();

?>

‡cÖvMÖvg p23.php:K¬vm †k‡l destruct †g_W

AvDUcyU: I still existI still existdestroying the object

27

eyKwewW m¤úvw`Z Ab¨vb¨ eBmg~n

weMxwbs Rygjv A¨vWfvÝW Rygjv cÖ‡dkbvj Rygjv Rygjv †U¤ú‡jU †gwKs

weMxwbs IqvW©‡cÖm A¨vWfvÝW IqvW©‡cÖm cÖ‡dkbvj IqvW©‡cÖm B›Uvi‡b‡U

AvZ¥Kg©ms¯vb-1 B›Uvi‡b‡U AvZ¥Kg©ms vb-2 B-Kgvm© A¨vÛ Rygjv! fvPz©gvU©

B-Kgvm© g¨v‡µvwgwWqv wWªgI‡qfvi mvP© BwÄb AcwUgvB‡Rkb A¨vWfvÝW

mvP© BwÄb AcwUgvB‡Rkb cÖ‡dkbvj mvP© BwÄb AcwUgvB‡Rkb d‡i· †UªwWs

B-gv‡K©wUs A¨vWfvÝW GBPwUGgGj wcGBPwc A¨vÛ gvB GmwKDGj

A¨vWfvÝW wcGBPwc A¨vÛ gvB GmwKDGj Ae‡R± Awi‡q‡›UW wc.GBP.wc

†WUv‡eBR gvB GmwKDGj wm †cÖvMÖvwgs Rvfv †cÖvMÖvwgs Rvfvw¯…Þ

A¨vWfvÝW d‡Uvkc A¨vWfvÝW Bjv‡÷ªUi cÖ‡dkbvj MÖvwd· wWRvBb

cÖ‡dkbvj Kw¤úDUvi †bUIqvwK©s I‡W¯‥ Ges AvD‡mvwm©s A¨vwdwj‡qU gv‡K©wUs

www.bookbd.info

eyKwewW n‡”Q evsjv‡`kx cÖ‡dkbvj evsjv eB mg~‡ni I‡qemvBU| †hLvb †_‡K Avcwb B-eyK webv g~‡j¨

WvDb‡jvW Ki‡Z cvi‡eb| †h eB¸‡jv Avcbv‡K AvBwU AvDU‡mvwm©s-G cÖ‡dkbvj K¨vwiqvi M‡o Zzj‡Z

mvnvh¨ Ki‡e| G QvovI wb‡R wb‡R †Kvb cÖKvi †Uªwbs QvovB †h †Kvb wel‡qi Dci cÖ‡dkbvj `¶Zv

AR©b Ki‡Z cv‡ib GB eB¸‡jv c‡o| Avi Avcbv‡`i †Kvb civgk© _vK‡j Aek¨B Avgv‡`i‡K Rvbv‡eb,

GB wVKvbvq t- [email protected]

28

we‡kl ai‡Yi wKQz Kx IqvW Avgiv e¨envi K‡i _vwK K¬vm, †g_W, dvskb Ges f¨vwi‡qej Gi c~‡e© Avi

GwU‡KB e‡j modifier, A¨vK‡mm‡K Kb›Uªj Kivi Rb¨ Avgiv gwWdvqvi e¨envi K‡i _vwK| gwWdvqvi

†K Avevi visibility I ejv nq| modifier ¸‡jv n‡”Q †hgb public, private, protected, Final

Ges Abstratct

cvewjK (Public):

†Kvb K¬vm, †fwi‡qej Ges dvskb Gi c~‡e© cvewjK Kx-IqvWwU _vK‡j GwU‡K

Avcbvi w¯…Þ Gi †h †Kvb RvqMvq e¨envi Kiv hv‡e| g‡b ivL‡eb H K¬vm A_ev

†cÖvc©vwU¸‡jv Avcbvi wcGBPwc dvB‡j me RvqMvq e¨envi Kiv hv‡e| hw` †Kvb

K¬v‡mi wfZi †g_W A_ev †fwi‡qej cvewjK, †m¸‡jv‡K K¬v‡mi wfZ‡i GgbwK

evB‡iI e¨envi Kiv hv‡e|

<?php

class test

{

public $abc='I am defined public'; // abc variblae defined by public

}

$objA = new test();

echo $objA->abc;//accessible from outside because abc defined by public

?>

‡cÖvMÖvg p24.php: cvewjK †fwi‡qej

AvDUcyU: I am defined public

<?php

class test

{

public function xyz() // xyz mehtod defined by public, xyz accessible from outside class

{

echo 'I am defined public method';

}

}

13: gwWdvqvi (Modifiers):

29

$objA = new test();

$objA->xyz();//public method of the class test

?>

‡cÖvMÖvg p25.php:cvewjK †g_W

AvDUcyU: I am defined public method

<?php

class test

{

public $abc='you can access me (abc) outside of test class ';

public $xyz;

public function xyz()

{

echo 'you can access me (zyz) outside of test class ';

}

}

$objA = new test();

echo $objA->abc;//accessible from outside

$objA->xyz();//public method of the class test

?>

‡cÖvMÖvg p26.php:cvewjK †fwi‡qej Ges †g_W

AvDUcyU: you can access me (abc) outside of test class you can access me (zyz) outside of test class

cÖvB‡fU (Private):

cÖvB‡fU †g_W Ges †cÖvc©vwU mg~n ïay gvÎ K¬v‡mi wfZ‡i e¨envi Kivi Rb¨|

cÖvB‡fU f¨vwi‡qej Ges dvskb‡K K¬v‡mi evB‡i e¨envi Kiv hv‡e bv| Z‡e

K¬v‡mi gv‡S e¨envi Kiv hv‡e $this Kx-IqvW e¨envi K‡i| cÖkœ nj †Kb

dvskb A_ev f¨vwi‡qej‡K cÖvB‡fU Ki‡ev A_©vr Avcwb hw` KL‡bv g‡b K‡ib

Avcbvi K¬v‡mi †cÖvc ©vwU K¬v‡mi evB‡ii †KD e¨envi bv KiæK ZLb cÖvB‡fU

e¨envi Ki‡Z n‡e|

<?php

class test

30

{

private $abc='you can access me (abc) inside of of test class ';

public function xyz()

{

echo $this->abc;

}

}

$objA = new test();

//echo $objA->abc;//accessible not possible from outside the test class

$objA->xyz();//public method of the class test

?>

‡cÖvMÖvg p27.php:cÖvB‡fU f¨vwi‡qej

AvDUcyU: you can access me (abc) inside of of test class

<?php

class Car {

private $NumberOfDoors;

public function __construct() {

$this->NumberOfDoors = 4;

echo $this->NumberOfDoors;

}

}

// instantiate

$car= new Car();

// show the property - not allowed

?>

‡cÖvMÖvg p28.php:cÖvB‡fU f¨vwi‡qej Ges Constructor

AvDUcyU: 4

‡cÖv‡UK‡UW (Protected):

‡cÖv‡UK‡UW n‡”Q A‡bKUv cvewjK Ges cÖvB‡fU Gi gvSvgvwS| Z‡e

†cÖv‡UK‡UW n‡”Q cÖvB‡fU Gi gZ Z‡e †mwU‡K wcGBPwc K¬v‡m e¨envi Kiv hv‡e

Bb‡nwi‡UÝ Ges B›Uvi‡dm Gi †ÿ‡Î| wcÖq cvVK, Avgiv Dc¯vcb Ges eySv‡bvi

31

myweav‡_© A‡bK mgq Bs‡iwR evsjv mswgkÖb K‡i wjLwQ hv ÿgv my›`i „wó‡Z

†`L‡eb|

<?php

class pc // pc is parent class

{

protected $pr=451; // define protected to stop access outside the class

// but the childe class can access the pr varible

}

class cc extends pc // cc is child class is so it can access the pr

{

public function testChild()

{

echo $this->pr; //will work because it cc is child of pc

}

}

$objChild = new cc();

$objChild->testChild();//work because test child will call

?>

‡cÖvMÖvg p30.php:†cÖv‡UK‡UW f¨vwi‡qej GKª‡mm

AvDUcyU: 451

<?php

class parent

{

protected $pr;

public $a

protected function testParent()

{

echo this is test;

}

}

class child extends parent

{

public function testChild()

{

$this->testParent(); //will work because it

}

32

}

$objParent = new parent();

$objParent->testParent();//Throw error

$objChild = new Child();

$objChild->setChild();//work because test child will call test parent.

?>

‡cÖvMÖvg p31.php:gwWdvqvi Gi e¨envi

<?php

class Myclass

{

public $title;

public function DispTitle()

{

echo $this -> title;

echo "<br />";

}

}

$obj = new Myclass();

$obj->title = "ABCXYZ";

echo $obj->title;

echo "<br />";

echo $obj->DispTitle();

?>

33

‡cÖvMÖvg p32.php:gwWdvqvi Gi e¨envi

AvDUcyU: ABCXYZ

ABCXYZ

<?php

class Myclass

{

protected $title=10;

}

class Baseclass extends Myclass

{

function __construct()

{

echo $this->title;

}

}

$obj = new Baseclass();

?>

‡cÖvMÖvg p33.php:gwWdvqvi Gi e¨envi

AvDUcyU: 10

<?php

class myClass

{

public $public = 'Public';

protected $protected = 'Protected';

private $private = 'Private';

function printHello()

{

echo $this->public;

echo $this->protected;

echo $this->private;

}

}

$obj = new myClass();

echo $obj->public; // Works

echo $obj->protected; // Fatal Error

echo $obj->private; // Fatal Error

// Shows Public, Protected and Private

34

$obj->printHello();

class myClass2 extends myClass

{

// We can redeclare the public and

// protected method, but not private

protected $protected = 'Protected2';

function printHello()

{

echo $this->public;

echo $this->protected;

echo $this->private;

}

}

$obj2 = new myClass2();

echo $obj->public; // Works

echo $obj2->private; // Undefined

echo $obj2->protected; // Fatal Error

// Shows Public, Protected2, not Private

$obj2->printHello();

?>

‡cÖvMÖvg p34.php: wewfbœ gwWdvqvi mg~n

AvDUcyU: Public

wbR K¬v‡mi †Kvb †cÖvc ©vwU †hgb f¨vwi‡qej Ges †g_W e¨envi Gi Rb¨ this Kx-IqvW

cÖ‡qvRb nq| Avevi this Kx-IqvW e¨envi K‡i Ae‡R± Øviv H K¬v‡mi property ¸‡jv A¨vK‡mm Kiv

hvq|

<?php

14: this Kx IqvW:

35

class Foo

{

public $Bar;

public function __construct()

{

$this->Bar = 0; // use this to access Bar varibale

}

public function Baz()

{

$this->Bar = 10;

echo $this->Bar;

}

}

$f1 = new Foo();

$f2 = new Foo();

$foo1->Baz(); // sets the value of $Bar inside $foo1 to 10

// does not affect the $Bar inside $foo2

?>

‡cÖvMÖvg p36.php: this Kx-IqvW Gi e¨envi

AvDUcyU:

GKwU †Q‡j Zvi evevi m¤ú` cv‡e GUvB ¯vfvweK A_©vr evevi m¤ú` mvaviYZ

†Q‡j webv AbygwZ‡ZB e¨envi Ki‡Z cv‡i , GUvB n‡”Q Bb‡nwi‡UÝ| A_v©r

Avcbvi evevi GKwU Mvwo Av‡Q GwU Avcbvi evev e¨envi Ki‡Q Avevi gv‡S

gv‡S Avcwb e¨envi Ki‡Qb wKš‧ hw` MvwowU Avcbvi PvPvi n‡Zv nq‡Zv ev

Avcwb PvB‡jB e¨envi Ki‡Z cvi‡Zb bv, GUvB n‡”Q Inheritance Gi gRvi

welq|

GLb †`wL Avm‡j †cÖvMÖvwgs G GwU †Kgb| †cÖvMÖvwgs G GKwU K¬vm Ab¨ GKwU

K¬vm Gi f¨vwi‡qej A_ev †g_W e¨envi Ki‡Z cvi‡e hw` Bb‡nwi‡UÝ nq| A_©vr

PvBì K¬vm c¨v‡i›U (parent) K¬vm Gi †cÖvc ©vwU e¨envi Ki‡Z cvi‡e|

B-Kgvm© I‡qemvBU •Zwi Kivi mnR ‡K․kj Rvb‡Z Avgv‡`i †jLv Ó B-Kgvm© GÛ Rygjv! fvPz©gvU ©Ó eBwU

co‡Z cv‡ib|

15: Bb‡nwi‡UÝ (Inheritance):

36

GKB †KvW evi evi e¨envi Kiv hvq|

‡KvW Gi mvBR A‡bK K‡g hvq|

GKB ai‡Yi Kv‡Ri Rb¨ GKB ai‡Yi †KvW evi evi wjL‡Z nq bv|

GKB K¬v‡mi †cÖvc ©vwU A‡bK¸‡jv K¬vm e¨envi Ki‡Z cv‡i|

parent K¬vm PvB‡j wKQz †cÖvcvwU© hide K‡i ivL‡Z cv‡i A_©vr PvBì K¬vm †m¸‡jv G¨vK‡mm

(e¨envi) Ki‡Z cvi‡ebv|

‡eBm (parent)K¬vm‡K GKª‡UÛ Kiv hvq|

‡cÖvMÖvg Gi ivb UvBg K‡g hvq|

parent K¬vm cwieZ©b Ki‡j PvBì K¬vmI cwieZ©b nq|

Bb‡nwi‡UÝ ZLbB nq hLb G‡Ki AwaK K¬vm _v‡K| †hgb wb‡b¥ ywU K¬vm GKwU n‡”Q p K¬vm

†hwU‡K Avgiv c¨v‡i›U K¬vm, Ab¨ GKwU K¬vm c †hwU‡K Avgiv PvBì K¬vm ejwQ|

class p class p GwU‡K mycvi/‡eBm/c¨v‡i›U K¬vm I ejv nq

{

} class c GwU‡K PvBì/GKª‡UÛ K¬vm I ejv nq

class c extends p

{

GB Kx-IqvWwU Inheritance Kivi Rb¨ e¨envi Ki‡Z nq

16: Bb‡nwi‡UÝ Gi myweav:

17: Bb‡nwi‡UÝ †cÖvMÖvg:

37

}

‡cÖvMÖvg wmbU¨vKª 5 : Bb‡nwi‡UÝ †cÖvMÖvg wmbU¨vKª

Bb‡nwi‡UÝ Kivi wbqg n‡”Q:

PvBì K¬vm wj‡L extends Kx-IqvW wj‡L mycvi K¬vmwU wjL‡Z n‡e|

g‡b ivL‡eb c¨v‡i›U K¬vm †K †eBm A_ev mycvi K¬vmI ejv nq|

<?php

class P

{

public $n=12; // n declared in p class and assign value 12

}

class C extends P

{

function display()

{

echo $this->n; // print n in the c lass but c is varible in p class

// since c is the child of p for that reason n is printed in the display method

}

}

$io=new C();

$io->display();

?>

‡cÖvMÖvg p37.php: K¬vm Ges Bb‡nwi‡UÝ

AvDUcyU: 12

<?php

class class_A{

38

public function hello() // hello function in the super class

{

return "Hello I am parent"; // hello method return Hello I am parent

}

}

class my_class extends class_A

{

public function greeting()

{

echo $this->hello(); // call hello mehtod of Class_A and hello method reuturn

'Hello I am parent'

}

}

$obj = new my_class; // object of base class my_class

echo $obj->greeting(); // call greeting method of base class

?>

‡cÖvMÖvg p38.php: †g_W e¨envi Ges Bb‡nwi‡UÝ

AvDUcyU: Hello I am parent

<?php

class class_A{

public function hello($name) // hello function in the super class

{

return $name; // hello method return Isita

}

}

class my_class extends class_A

{

public function greeting($name)

{

echo $this->hello($name); // call hello mehtod of Class_A

}

}

$obj = new my_class; // object of base class my_class

39

echo $obj->greeting('Isita'); // call greeting method of base class

?>

‡cÖvMÖvg p39.php: Bb‡nwi‡UÝ Ges f¨vjy cvwms

AvDUcyU: Isita

<?php

class kok

{

var $_name;

function Pet($name)

{

$this->_name = $name;

}

function eat()

{

}

function sleep()

{

echo 'I am sleeping';

}

}

class Dog extends kok

{

function bark()

{

}

}

class Cat extends kok

{

function meow()

{

}

}

$dog = new Dog("Max");

$dog->eat();

$dog->bark();

$dog->sleep();

40

$cat = new Cat("Misty");

$cat->eat();

$cat->meow();

$cat->sleep();

?>

‡cÖvMÖvg p40.php: G‡Ki AwaK PvBì K¬v‡m Bb‡nwi‡UÝ

AvDUcyU: I am sleepingI am sleeping

<?php

class A {

// code goes here

}

class B extends A {

// code goes here

}

class C extends B {

// code goes here

}

$oA = new A();

$oB = new B();

$oC = new C();

?>

‡cÖvMÖvg p41.php: Bb‡nwiU¨vÝ wmbU¨vKª

Kv‡i›U Gi myBP Avgiv mevB e¨envi Kwi| GKB myBP Avcwb wewfbœ Kv‡R e¨envi Ki‡Z

cv‡ib †hgb d¨vb, jvBb Ab-Ad Kivi Rb¨ Avi GwUB n‡”Q cwjgiwdRg|

poly A_© n‡”Q A‡bK (many) Avi morph A_© n‡”Q dg© (forms) Zvn‡j ejv hvq

polymorphism A_© n‡”Q A‡bK dg©| A_©vr B‡jKwUªK myBP ¸‡jv GKB n‡jI G‡KKwU Avjv`v

Avjv`v Kv‡Ri Rb¨ †hgb GKwU myB‡Pi KvR nj jvBU Ab Kivi Rb¨ Ab¨ myB‡Pi KvR nj d¨vb

Ab Kivi Rb¨|

18: cwjgiwdRg (Polymorphism):

41

‡cÖvMÖvwgs G cwjgiwdRg eySv A‡bK mnR †hgb Avcbvi y‡Uv †g_W GKB bv‡g Av‡Q wKš‧ y‡Uv

†g_W y‡Uv wewfbœ KvR K‡i GwUI n‡”Q cwjgiwdRg| Ab¨fv‡e ejv hvq GKB dvskb hLb

wewfbœ D‡Ï‡k¨ e¨envi Kiv nq|

wPÎ 10: cwigiwdRg Gi D`vniY

B-Kgvm© m¤ú‡K© we¯ÍvwiZ Rvb‡Z Avgv‡`i †jLv B-Kgvm © eBwU co‡Z cv‡ib|

<?php

class A{ // parent class

function Dp(){ // Dp method in the parent class

echo "Inside the Base class<br/>";

}}

class B extends A{ // B is child class

function Dp(){ // Dp method in the child clss it is also in the parent class

echo "Inside the Chlid class<br/>";

}}

// THis Dp method in both chlid and parent class this way is polymorphism

19: cwjgiwdRg ‡cÖvMÖvg wmbU¨vKª:

42

$obj=new B();

$obj->Disp();

?>

†cÖvMÖvg p42.php: wmbU¨vKª cwjgiwdRg

<?php

class A{ // parent class

function Dp(){ // Dp method in the parent class

echo "Inside the Base class<br/>";

}}

class B extends A{ // B is child class

function Dp(){ // Dp method in the child clss it is also in the parent class

echo "Inside the Chlid class<br/>";

}}

// THis Dp method in both chlid and parent class this way is polymorphism

class C extends A

{

function Dp()

{

echo " I am in Class C";

}

}

$obj=new B();

$obj->Dp();

$oc= new C();

$oc->Dp();

?>

‡cÖvMÖvg p43.php: cwjgiwdRg †cÖvMÖvg

AvDUcyU: Inside the Chlid class

I am in Class C

43

eyKwewW m¤úvw`Z Ab¨vb¨ eBmg~n

weMxwbs Rygjv A¨vWfvÝW Rygjv cÖ‡dkbvj Rygjv Rygjv †U¤ú‡jU †gwKs

weMxwbs IqvW©‡cÖm A¨vWfvÝW IqvW©‡cÖm cÖ‡dkbvj IqvW©‡cÖm B›Uvi‡b‡U

AvZ¥Kg©ms¯vb-1 B›Uvi‡b‡U AvZ¥Kg©ms vb-2 B-Kgvm© A¨vÛ Rygjv! fvPz©gvU©

B-Kgvm© g¨v‡µvwgwWqv wWªgI‡qfvi mvP© BwÄb AcwUgvB‡Rkb A¨vWfvÝW

mvP© BwÄb AcwUgvB‡Rkb cÖ‡dkbvj mvP© BwÄb AcwUgvB‡Rkb d‡i· †UªwWs

B-gv‡K©wUs A¨vWfvÝW GBPwUGgGj wcGBPwc A¨vÛ gvB GmwKDGj

A¨vWfvÝW wcGBPwc A¨vÛ gvB GmwKDGj Ae‡R± Awi‡q‡›UW wc.GBP.wc

†WUv‡eBR gvB GmwKDGj wm †cÖvMÖvwgs Rvfv †cÖvMÖvwgs Rvfvw¯…Þ

A¨vWfvÝW d‡Uvkc A¨vWfvÝW Bjv‡÷ªUi cÖ‡dkbvj MÖvwd· wWRvBb

cÖ‡dkbvj Kw¤úDUvi †bUIqvwK©s I‡W¯‥ Ges AvD‡mvwm©s A¨vwdwj‡qU gv‡K©wUs

www.bookbd.info

eyKwewW n‡”Q evsjv‡`kx cÖ‡dkbvj evsjv eB mg~‡ni I‡qemvBU| †hLvb †_‡K Avcwb B-eyK webv g~‡j¨

WvDb‡jvW Ki‡Z cvi‡eb| †h eB¸‡jv Avcbv‡K AvBwU AvDU‡mvwm©s-G cÖ‡dkbvj K¨vwiqvi M‡o Zzj‡Z

mvnvh¨ Ki‡e| G QvovI wb‡R wb‡R †Kvb cÖKvi †Uªwbs QvovB †h †Kvb wel‡qi Dci cÖ‡dkbvj `¶Zv

AR©b Ki‡Z cv‡ib GB eB¸‡jv c‡o| Avi Avcbv‡`i †Kvb civgk© _vK‡j Aek¨B Avgv‡`i‡K Rvbv‡eb,

GB wVKvbvq t- [email protected]

44

g‡b Kiæb Avcbvi Kv‡Q wZbwU wRwbm Av‡Q †hgb cÖ_gwU n‡”Q †cb, wØZxq n‡”Q

†gvevBj Avi Z…ZxqwU n‡”Q †cb WªvBf| GLb Avcwb hw` Pvb Gme wRwbm †KD e¨envi bv KiæK, Zvn‡j

Avcwb Zv jywK‡q ivL‡eb| A_ev fve‡jb bv, †cbUv †KD PvB‡j e¨envi Ki‡Z cvi‡e Zvn‡j Avcwb evwK

ywU‡K jywK‡q ivL‡eb| A_©vr GB welqwU‡K Avgiv Encaptulation fve‡Z cvwi|

‡qbK¨vcmy¨‡jkb n‡”Q Ggb GKwU c×wZ A_©vr Avgvi m¤ú` Avwg Qvov Avi †KD e¨envi Ki‡Z cvi‡e

wK cvi‡e bv|

GwU A‡bKUv GiKg, jywK‡q †i‡L cÖ‡qvR‡b KvD‡K wKQz †`L‡Z w`jvg| †qbK¨vcmy‡jkb †K †WUv nvBwWs

I ejv nq| Avcwb hw` †gvevBj †dv‡b cvmIqvW© ‡`b, A‡b‡K GwU †`L‡e, bvovPov Ki‡e wKš‧ Avcwb

hw` KvD‡K cvmIqvW© bv e‡jb Zvn‡j †m †gvevBj I‡cb Ki‡Z cvi‡e bv|

Aek¨B g‡b ivL‡eb GB eBwU covi c~‡e© Avgv‡`i †jLv ÓwcGBPwc A¨vÛ gvBGmwKDjÓ eBwU Aek¨B

co‡eb| Ab¨_vq GB eBwU eyS‡Z Avcbvi mgm¨v n‡Z cv‡i|

†Kvb K¬vm Gi †g_W Ges f¨vwi‡qej‡K H K¬vm Qvov Ab¨ K¬vm e¨envi Ki‡Z cvi‡e

wK cvi‡e bv| Encaptulation n‡”Q Ggb GKwU c×wZ †hwU K¬vm Gi †WUv Ges dvskb GK mv‡_ K‡i

iv‡L K¬vm Gi wfZ‡i| GwU †WUv‡K nvBW (hide) K‡i iv‡L, †hb K¬vm evBi †_‡K mivmwi (Directly)

e¨envi Ki‡Z bv cv‡i| wKš‧ K¬vm Gi dvskb‡K e¨envi K‡i, PvB‡j K¬vm evBi †_‡K K¬vm Gi Z_¨

e¨envi Ki‡Z cv‡i|

<?php

class enc

{

private $p=10; // this is private varibale usually it is not possible to access outside the class

function mn()

{

return $this->p; // since p is not possible use outside the class

} // for this reason return it from where call the mn method

}

21: †cÖvMÖvwgs G †qb‡Kcmy¨‡jkb

(Encaptulation):

22: †qbK¨vcmy¨‡kb †cÖvMÖvwgs:

20: †qb‡Kcmy¨‡jkb (Encaptulation):

45

$obj=new enc(); // object of enc class

// using this object we cant call p varible which is in enc class

// if we write echo $obj->p; it will not work because p is private

echo $obj->mn(); // if we call mn method we get p

?>

‡cÖvMÖvg p44.php: ‡ewmK wmbU¨vKª †qbK¨vcmy¨‡jkb

AvDUcyU: 10

<?php

class Hide {

private $myname;

function getname()

{

$this->myname = "damodharan";

return $this->myname;

}

}

class mimi {

private $name='Badsha';

public function sname()

{

echo "I am in hide class ";

return $this->name;

}

}

$run = new mimi();

46

echo $run->sname();

$ho= new Hide();

echo $ho->getname();

?>

‡cÖvMÖvg p45.php: †qbK¨vcmy¨‡jkb †cÖvMÖvwgs

AvDUcyU: I am in hide class Badshadamodharan

Avcbvi GKwU †cb WªvBf Av‡Q GwU mevB Rv‡b Ges PvB‡j wb‡Z cv‡i wKš‧ Zviv

e¨envi Ki‡Z cv‡i bv| aiæb Avcbvi †gvevBj eÜz wb‡q‡Q Kj †`Iqvi Rb¨ wKš‧ †gvevBj †m I‡cb

Ki‡Z cvi‡Q bv| KviY Avcwb †gvevB‡j cvmIqv©W w`‡q †i‡L‡Qb Avi G e¨vcviwUB n‡”Q A¨vemUªvKU|

A¨vemUª¨vKU K¬vm‡K Ab¨ †Kvb K¬vm Bb‡n‡iU K‡i| K¬vm Ges †g_W y‡UvB Abstract

n‡Z cv‡i Z‡e †g_W Abstract n‡j K¬vm Aek¨B Abstract n‡Z n‡e| g‡b ivL‡Z n‡e †Kvb

Abstract K¬vm Gi †g_W Abstract n‡j †mB †g_W Gi Bgwcø‡gb‡Ukb (implementation) A_©vr

ewW‡Z wKQz _vK‡e bv|

Abstract K¬vm Gi †Kvb Ae‡R± create (‣Zwi) Kiv hvq bv|

B-Kgvm© I‡qemvBU •Zwi Kivi mnR †K․kj Rvb‡Z Avgv‡`i †jLv ÓB-Kgvm© GÛ Rygjv! fvP©gvU©Ó eBwU

co‡Z cv‡ib|

‡h K¬vm Abstract K¬m‡K Bb‡n‡iU Ki‡e †mB K¬v‡m †g_W ¸‡jvi ewW (implementation)

wWdvBb Kiv _vK‡Z n‡

23: A¨vemUªvKU (Abstract):

24: †cÖvMÖvwgs A¨vemUª¨vKU:

25: A¨ve÷ª¨vKU K¬vm wmbU¨vK&ª:

47

wb‡¤œ GKwU A¨ve÷ª¨vKU K¬vm Gi wbqg †`Lv‡bv nj

abstract Kx-IqvW

abstract class nima { }

class Kx-IqvW K¬vm †bBg

‡cÖvMÖvg wmbU¨vKª 5 :A¨ve÷ª¨vKU K¬vm †cÖvMÖvg wmbU¨vKª

A¨ve÷ª¨vKU K¬vm Gi c~‡e© Aek¨B abstract Kx-IqvWwU wjL‡Z n‡e| Zvici class Kx-IqvWwU

Gi ci K¬vm Gi bvg

Aek¨B g‡b ivL‡eb GB eBwU covi c~‡e© Avgv‡`i †jLv ÓwcGBPwc A¨vÛ gvBGmwKDjÓ eBwU Aek¨B

co‡eb| Ab¨_vq GB eBwU eyS‡Z Avcbvi mgm¨v n‡Z cv‡i|

Gevi †`L‡ev abstract †g_W wjLvi wbqg

abstract Kx-IqvW

‡cÖvMÖvg wmbU¨vKª 6: A¨ve÷ª¨vKU †cÖvMÖvg K¬vm wmbU¨vKª

abstract †g_W Gi wfZi wKQz †jLv _vK‡e bv

<?php

abstract class nima

abstract public function myni();

?

<?php

abstract class Foo { // Foo is abstract class

abstract public function foobar(); // foobar is abstract method no body of this method

}

class Baz extends Foo {

dvskb Kx-IqvW

abstract public function myni( ); ‡mwg‡Kvjb

gwWdvqvi cÖ_g eÜbx

‡g_W †bBg

26: G¨vemUª¨vKU †cÖvMÖvwgs:

48

public function foobar() { // implemetn the foobar method in the Baz class

echo "My name is Rashid"; // only child class can implement the abstract

method

}

}

// we cant create the object of Foo class like $ob=new Foo(), not possible because abstract class

$h=new Baz();

$h->foobar();

?>

‡cÖvMÖvg p46.php: †ewmK G¨vemU¨vKU †cÖvMÖvg

AvDUcyU: My name is Rashid

<?php

abstract class A{

abstract function disp();

}

class B extends A{

public function disp(){

echo "Inside the child class<br/>";

}

}

class C extends A{

public function disp(){

echo "Inside the child class 2<br/>";}

}

$two=new B();

echo "<b>Calling from the child class B:</b><br/>";

49

$two->disp();

echo "<b>Calling from the child class C:</b><br/>";

$three=new C();

$three->disp();

?>

‡cÖvMÖvg p47.php: G¨vemUª¨vKU

AvDUcyU: Calling from the child class B:

Inside the child class

Calling from the child class C:

Inside the child class 2

B›Uvi‡dBm K¬v‡mi †Kvb †g_W Gi †Wwd‡bkb _v‡K bv| Interface K¬v‡m ïay †g_W Gi

Defination _v‡K| B›Uvi‡dBm K¬vm Gi ‡g_W †K hw` Ab¨ K¬vm e¨envi (Implement) Ki‡Z Pvq,

Z‡e g‡b ivL‡Z n‡e H K¬vm‡K Aek¨B B›Uvi‡dBm K¬v‡mi mKj †g_W‡K ev¯Íevqb Ki‡Z n‡e|

wPÎ 11: wi‡gvU Ges †Uwjwfkb

Dc‡ii wPÎwU jÿ¨ Kiæb wi‡gvUwU wUwf Ges `k©K Gi g‡a¨ B›Uvi‡dBm wnmv‡e KvR Ki‡Q|

27: B›Uvi‡dBm (Interface):

50

Interface Kx-IqvW

Interface abc K¬vm †bBg

{

public function pq( );

}

‡cÖvMÖvg wmbU¨vKª 7 : B›Uvi‡dBm K¬vm wmbU¨vKª

Interface n‡”Q GKwU Kx-IqvW †hwU B›Uvi‡dBm K¬v‡mi c~‡e© wjL‡Z n‡e|

implements Kx-IqvW

class xyz implements abc B›Uvi‡dBm K¬vm

{

28: B›Uvi‡dBm K¬v‡mi wmbUª¨vKª:

51

public function xyz()

{

xyz K¬vm

xyz †g_W Gi ewW

}

}

‡cÖvMÖvg wmbU¨vKª 8 : B›Uvi‡dBm K¬vm wmbU¨vKª

B›Uvi‡dBm K¬vm‡K †h K ¬vm e¨envi Ki‡e †mB K¬vm Aek¨B Interface K¬vm‡K GKª‡UÛ Ki‡Z

n‡e| B›Uvi‡dBm K¬vm‡K GKª‡UÛ Ki‡Z n‡j Aek¨B implements Kx-IqvWwU e¨envi Ki‡Z

n‡e|

B›Uvi‡dBm K¬v‡mi †g_W Aek¨B cvewjK n‡e Ges f¨vwi‡qej Kb÷ª¨v›U n‡e|

AbjvB‡bi gva¨‡g wKfv‡e Avq Ki‡Z nq ev wKfv‡e AvDU‡mvwm©s Ki‡Z nq Zv we¯ÍvwiZ Rvb‡Z Avgv‡`i

†jLv ÓB›Uvi‡b‡U AvZœKg©ms¯’vb-2Ó I ÓAvDU‡mvwm©s Ges I‡W¯‹Ó eB¸‡jv co‡Z cv‡ib|

<?php

interface Sort {

function getContentsAsText();

}

class Doc implements Sort {

29: B›Uvi‡dBm K¬vm †cÖvMÖvg:

52

public function getContentsAsText() {

return "This is Text of the Document\n";

}

}

$p = new Doc();

echo $p->getContentsAsText();

?>

‡cÖvMÖvg p48.php: †ewmK B›Uvi‡dBm K¬vm

AvDUcyU: This is Text of the Document

<?php

interface tem

{

public function f1();

}

class test implements tem

{

public function f1()

{

echo "Hello";

}

}

$h =new test();

$h->f1();

?>

‡cÖvMÖvg p49.php: B›Uvi‡dBm K¬vm

AvDUcyU: Hello

<?php

interface employee

{

function setdata($empname,$empage);

function outputData();

53

}

class Payment implements employee

{

function setdata($empname,$empage)

{

//setdata method funtionality if any

}

function outputData()

{

echo "Inside Payment Class";

}

}

$p = new Payment();

$p->outputData();

?>

‡cÖvMÖvg p50.php: B›Uvi‡dBm employee K¬vm

AvDUcyU: Inside Payment Class

55

weMxwbs Rygjv

A¨vWfvÝW Rygjv

cÖ‡dkbvj Rygjv

Rygjv †U¤ú‡jU †gwKs

weMxwbs IqvW©‡cÖm

A¨vWfvÝW IqvW©‡cÖm

cÖ‡dkbvj IqvW©‡cÖm

B›Uvi‡b‡U AvZ¥Kg©ms¯vb-1

B›Uvi‡b‡U AvZ¥Kg©ms¯vb-2

B-Kgvm© A¨vÛ Rygjv! fvPz©gvU©

B-Kgvm©

g¨v‡µvwgwWqv wWªgI‡qfvi

mvP© BwÄb AcwUgvB‡Rkb

A¨vWfvÝW mvP© BwÄb AcwUgvB‡Rkb

cÖ‡dkbvj mvP© BwÄb AcwUgvB‡Rkb

d‡i· †UªwWs

B-gv‡K©wUs

GBP wU Gg Gj-5

A¨vWfvÝW GBPwUGgGj

wcGBPwc A¨vÛ gvB GmwKDGj

A¨vWfvÝW wcGBPwc A¨vÛ gvB GmwKDGj

Ae‡R± Awi‡q‡›UW wc.GBP.wc

†WUv‡em gvB GmwKDGj

wm †cÖvMÖvwgs

Rvfv †cÖvMÖvwgs

Rvfvw¯…Þ

Rygjv! †Ug‡cøU †gwKs

A¨vWfvÝW d‡Uvkc

A¨vWfvÝW Bjv‡÷ªUi

cÖ‡dkbvj MÖvwd· wWRvBb

cÖ‡dkbvi Kw¤úDUvi †bUIqvwK©s

I‡W¯‥ Ges AvDU‡mvwm©s

A¨vwdwj‡qU gv‡K©wUs

eyKwewW m¤úvw`Z Ab¨vb¨ eBmg~n

56

www.bookbd.info

eyKwewW n‡”Q evsjv‡`kx cÖ‡dkbvj evsjv eB mg~‡ni I‡qemvBU| †hLvb †_‡K Avcwb B-eyK webv g~‡j¨

WvDb‡jvW Ki‡Z cvi‡eb| †h eB¸‡jv Avcbv‡K AvBwU AvDU‡mvwm©s-G cÖ‡dkbvj K¨vwiqvi M‡o Zzj‡Z

mvnvh¨ Ki‡e| G QvovI wb‡R wb‡R †Kvb cÖKvi †Uªwbs QvovB †h †Kvb wel‡qi Dci cÖ‡dkbvj `¶Zv

AR©b Ki‡Z cv‡ib GB eB¸‡jv c‡o| Avi Avcbv‡`i †Kvb civgk© _vK‡j Aek¨B Avgv‡`i‡K Rvbv‡eb,

GB wVKvbvq t- [email protected]

57

THE

END