object oriented php
DESCRIPTION
PHP object OrientedTRANSCRIPT
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
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