Mi a különbség a nyilvános, a privát és a védett között a PHP-ben?

Mi A Kulonbseg A Nyilvanos A Privat Es A Vedett Kozott A Php Ben



A PHP-t széles körben használják dinamikus webhelyek és webes alkalmazások fejlesztésére. A PHP olyan kulcsszavakat biztosít, mint hozzáférés módosítók . A hozzáférés módosító tulajdonságai a változó, az osztály vagy az osztálytulajdonságok három különböző módon történő elérésére szolgálnak, mint pl nyilvános , magán, és védett . Ebben a cikkben megvitatjuk ezeket a hozzáférés-módosítókat, és meghatározzuk a különbséget e három hozzáférés-módosító között a PHP programozási nyelvben.

Mik azok a hozzáférés-módosítók a PHP-ben?

A PHP-ben a hozzáférés-módosítók elengedhetetlenek, mert lehetővé teszik a felhasználók számára, hogy szabályozzák az osztályattribútumok és metódusok láthatóságát, valamint elérhetőségét. Ennek eredményeként tokozást és adatbiztonságot biztosít, így az osztály tagjai védve vannak a jogosulatlan hozzáféréstől vagy módosítástól. Ezenkívül megkönnyíti a kód karbantartását és a hibakeresést.







Hozzáférés-módosítók típusai

A PHP-ben létező három hozzáférés-módosítót az alábbiakban tárgyaljuk:



  • Nyilvános: Nyilvános metódust az osztályon kívülről is elérhet. Ez azt jelenti, hogy bármely kód hozzáférhet, módosíthat és meghívhat egy nyilvános metódust.
  • Magán: A privát metódus elérése magára az osztályra korlátozódik. Ez azt jelenti, hogy a többi kód egyike sem férhet hozzá privát metódushoz vagy olvassa be a privát értéket, még akkor sem, ha gyermekosztályról van szó.
  • Védett: Egy védett metódus csak egy osztályon és a hozzá kapcsolódó osztályokon belül érhető el; azokon az osztályokon kívül nem használható. Bármely forráskód, amelynek hozzá kell férnie az osztálypéldányhoz, képes olvasni vagy módosítani egy védett tulajdonság adatait, vagy meghívhat egy védett függvényt.

Különbség a nyilvános, privát és védett hozzáférés-módosítók között a PHP-ben

Ingatlan Nyilvános Magán Védett
Megközelíthetőség Ezek a hozzáférés-módosítók bárhonnan elérhetők, például a kódon belül és kívül. A privát hozzáférési specifikációk csak az osztályon belül érhetők el. Hozzáférhetõ lehet az osztályon és a kapcsolódó (gyermek) osztályokon, metódusokon belül.
Rugalmasság A legnagyobb rugalmasságot az állami források kínálják, mivel ezek bárhonnan elérhetők. Mivel kizárólag az osztályon belül érhetők el, ezek a módszerek kínálják a legkisebb rugalmasságot. A védett metódus közepes rugalmasságot biztosít, mivel a gyermekosztályok hozzáférhetnek ezekhez a metódusokhoz.
Egységbezárás Más kódok elérhetik vagy beágyazhatják a nyilvános metódusokat, de ezt a programozó irányítja. Az osztályon belül egy privát metódus van beágyazva, ami lehetetlenné teszi, hogy külső kód hozzáférjen vagy frissítse őket. Beágyazási folyamata megegyezik a PHP publikus módszerével.
Biztonság A nyilvános módszerek bárhonnan elérhetők. Tehát alacsony szintű biztonságot nyújtanak a kódban. A maximális biztonságot a privát hozzáférés-módosítók biztosítják, mivel ezek teljes mértékben az osztályon belül vannak. Mivel csak az osztály és alosztályai tagjai férhetnek hozzá, a védett hozzáférés-módosítók ésszerű biztonsági szintet kínálnak.

Nézzük meg a különbséget ezek között a hozzáférési specifikációk között egy egyszerű programpélda segítségével PHP-ben.



Példa: PHP program privát, nyilvános és védett hozzáférés-módosítókkal





A következő példa bemutatja a különbséget a nyilvános, privát és védett között egy példakódban:

< ?php
osztály MyClass {
nyilvános $nyilvános = 'Nyilvános változó. \n ' ; // Bárhonnan elérhető
magán $privát = 'Privát változó. \n ' ; // Csak az osztályon belülről lehet elérni
védett $védett = 'Védett változó.' ; // Elérhető az osztályon és bármely alosztályon belül

nyilvános funkció getPrivate ( ) {
Visszatérés $ezt - > magán;
}

nyilvános funkció get Protected ( ) {
Visszatérés $ezt - > védett;
}
}
$obj = új MyClass ( ) ;

visszhang $obj - > nyilvános;
visszhang $obj - > getPrivate ( ) ;
visszhang $obj - > get Protected ( ) ;
? >



A fenti programban egy osztályt a következőképpen határoztunk meg Az osztályom köztulajdonnal mint $nyilvános amely kódban bárhonnan hozzáférhetett, magántulajdon, mint $privát nevű védett ingatlant $védett , ezért nem érhetjük el közvetlenül az osztályon kívülről a privát és védett specifikációkat. Mivel két nyilvános módszert használtunk, az ún getPrivate() és getProtected() amelyek a privát és a védett tulajdonságok változó értékét adják vissza, a kimenet pedig az alábbiakban látható:

Következtetés

A PHP számos funkciót kínál, és ezek egyike a hozzáférés módosítóknak nevezett kulcsszavak. Ezek a hozzáférés-módosítók különböző hozzáférési mintákat biztosítanak az osztályok adataihoz a PHP programban. A fenti oktatóanyagban láthattuk a PHP-ben kínált hozzáférés-módosítók közötti különbséget a hozzáférhetőség, a tokozás, a rugalmasság és a biztonság tekintetében.