PHP లో మేజిక్ పద్ధతులు ఏమిటి? మరియు వాటిని ఎలా అమలు చేయాలి?



ఈ వ్యాసం మీకు ఉదాహరణలతో PHP లోని వివిధ మ్యాజిక్ పద్ధతుల యొక్క వివరణాత్మక మరియు సమగ్రమైన జ్ఞానాన్ని అందిస్తుంది.

లో , ప్రత్యేక ఫంక్షన్లను స్వయంచాలకంగా పిలవబడే విధంగా నిర్వచించవచ్చు మరియు ఈ ఫంక్షన్లలోని కోడ్‌ను అమలు చేయడానికి ఎటువంటి ఫంక్షన్ కాల్ అవసరం లేదు. ఈ లక్షణం మేజిక్ పద్ధతులు అని పిలువబడే ప్రత్యేక పద్ధతిలో లభిస్తుంది. ఈ వ్యాసంలో, మేము PHP లోని అగ్ర మ్యాజిక్ పద్ధతులను చర్చిస్తాము.

PHP లో మ్యాజిక్ పద్ధతులు ఏమిటి?

2 అండర్ స్కోర్లతో (__) ప్రారంభమయ్యే పద్ధతులను సాధారణంగా PHP లో మ్యాజిక్ పద్ధతులు అంటారు. ఈ పద్ధతుల పేర్లు కొన్ని జాబితాకు పరిమితం చేయబడ్డాయి PHP రిజర్వు చేయబడిన మద్దతు ఉన్న కీలకపదాలు. కాబట్టి ఏదైనా ఫంక్షన్‌ను PHP మ్యాజిక్ పద్ధతుల పేరుతో నిర్వచించకూడదు.





aws స్నాప్‌షాట్ నుండి ఉదాహరణను ప్రారంభించండి

Magic-Methods-in-PHP

సాధారణంగా, ఈ ఫంక్షన్లను వినియోగదారు నిర్వచించాలి మరియు వాటిని స్పష్టంగా పిలవవలసిన అవసరం లేదు.



PHP లో మ్యాజిక్ పద్ధతుల జాబితా

  • __ కన్స్ట్రక్ట్ ()
  • __ నిర్మూలన ()
  • __ కాల్ ($ సరదా, $ ఆర్గ్)
  • __ కాల్‌స్టాటిక్ ($ సరదా, $ ఆర్గ్)
  • __get ($ ఆస్తి)
  • __ సెట్ ($ ఆస్తి, $ విలువ)
  • __సెట్ ($ కంటెంట్)
  • __సెట్ ($ కంటెంట్)
  • __ నిద్ర ()
  • __మెల్కొనుట()
  • __toString ()
  • __సహాయం కోరు()
  • __ సెట్_స్టేట్ ($ శ్రేణి)
  • __ క్లోన్ ()
  • __debugInfo ()
  • __ కన్స్ట్రక్ట్ (): ఇది ఒక వస్తువు సృష్టించిన తర్వాత స్వయంచాలకంగా పిలువబడే ఒక పద్ధతి. వస్తువులను సృష్టించినప్పుడు ఆమోదించబడే ఎన్ని వాదనలు ఇక్కడ నిర్వచించబడతాయి.
తరగతి నమూనా {ఫంక్షన్ user_def () {echo 'యూజర్ నిర్వచించిన కన్స్ట్రక్టర్'} ఫంక్షన్ __ కన్స్ట్రక్ట్ () {echo 'ముందే నిర్వచించిన కన్స్ట్రక్టర్'}} $ obj = క్రొత్త నమూనా ()?>

  • __ నిర్మూలన (): డిస్ట్రక్టర్ అనేది ఆబ్జెక్ట్-ఓరియెంటెడ్ లాంగ్వేజ్ యొక్క ఒక సాధారణ లక్షణం, ఇది ఒక నిర్దిష్ట వస్తువుకు ఇతర సూచనలు లేన వెంటనే ప్రేరేపించబడుతుంది.
user_def () // చెక్ ఆబ్జెక్ట్ నాశనం చేయబడింది లేదా ఎకో is_object ($ obj) కాదు. ' '?>

  • __ కాల్ ($ సరదా, $ ఆర్గ్): నిర్వచించబడని లేదా ప్రాప్యత చేయలేని పద్ధతిని పిలిచినప్పుడు ఈ పద్ధతిని పిలుస్తారు. అంటే ఒక వస్తువుపై నిర్వచించబడని లేదా ప్రాప్యత చేయలేని పద్ధతి ఉపయోగించినప్పుడు దీనిని పిలుస్తారు.
రన్ ('టీచర్') // ఉనికిలో లేని పద్ధతిని ఆబ్జెక్ట్ లోపల పిలుస్తారు, అప్పుడు __ కాల్ () పద్ధతి స్వయంచాలకంగా పిలువబడుతుంది. $ obj-> తినండి ('అశోక్', 'నారింజ') $ obj-> user_define ()?>



  • __ కాల్‌స్టాటిక్ ($ సరదా, $ ఆర్గ్): నిర్వచించబడని లేదా ప్రాప్యత చేయలేని పద్ధతిని స్థిరమైన పద్ధతిలో ప్రారంభించినప్పుడు ఈ పద్ధతిని పిలుస్తారు.
user_define ()?>

  • __get ($ ఆస్తి): PHP ప్రాపర్టీ ఓవర్‌లోడింగ్ ద్వారా డైనమిక్‌గా సృష్టించబడిన తరగతి లక్షణాల విలువలను పొందడానికి ఈ పద్ధతి ఉపయోగించబడుతుంది.
name = $ name $ this-> reg = $ reg} పబ్లిక్ ఫంక్షన్ __get ($ propertyName) {if ($ propertyName == 'reg') {if ($ this-> reg> 30) {return $ this-> reg - 10} else! కన్స్ట్రక్టర్‌తో ఉన్న లక్షణాలకు. ఎకో 'పేరు :'. $ obj-> పేరు. '' // ప్రైవేట్ ఆస్తిని యాక్సెస్ చేసినప్పుడు, __get () పద్ధతి స్వయంచాలకంగా పిలువబడుతుంది, కాబట్టి మేము ఆస్తి విలువను పరోక్షంగా పొందవచ్చు. echo 'reg :'. $ obj-> reg. '' // __get () పద్ధతిని స్వయంచాలకంగా పిలుస్తారు , మరియు ఇది వస్తువు ప్రకారం వేర్వేరు విలువలను అందిస్తుంది. ?>

  • __ సెట్ ($ ఆస్తి, $ విలువ): PHP ప్రాపర్టీ ఓవర్‌లోడింగ్ ద్వారా డైనమిక్‌గా సృష్టించబడిన తరగతి లక్షణాల విలువలను ఉంచడానికి ఈ పద్ధతి ఉపయోగించబడుతుంది.
name = $ name $ this-> reg = $ reg} పబ్లిక్ ఫంక్షన్ __ సెట్ ($ ఆస్తి, $ విలువ) {if ($ property == 'reg') $ value $ property = $ value public function fun () {echo 'My పేరు '. $ this-> పేరు.', నా రిజిస్ట్రేషన్ నంబర్ '. $ this-> reg}} $ obj = క్రొత్త విద్యార్థి (' అశోక్ ', 40) // ప్రారంభ విలువ కోడ్ ద్వారా మార్చబడుతుందని గమనించండి క్రింద. $ obj-> name = 'సుష్మా' // 'పేరు' ఆస్తి విజయవంతంగా కేటాయించబడుతుంది. __ సెట్ () పద్ధతి లేకపోతే, అప్పుడు ప్రోగ్రామ్ మినహాయింపును విసిరివేస్తుంది. $ obj-> age = 16 // 'reg' ఆస్తి విజయవంతంగా కేటాయించబడుతుంది. $ obj-> reg = 160 // 160 చెల్లని విలువ, కాబట్టి ఇది కేటాయించడంలో విఫలమైంది. $ obj-> సరదా ()?>

  • __సెట్ ($ కంటెంట్); నిర్వచించబడని లేదా ప్రాప్యత చేయలేని సభ్యునికి జారీ () లేదా ఖాళీ () అని పిలిచేటప్పుడు ఈ పద్ధతి పిలువబడుతుంది. PHP జారీ () ఫంక్షన్‌ను ఉపయోగించడం ద్వారా అవసరమైన ఓవర్‌లోడ్ ఆస్తి సెట్ చేయబడిందా లేదా అని తనిఖీ చేసేటప్పుడు ఇది స్వయంచాలకంగా ప్రారంభించబడుతుంది.
name = $ name $ this-> reg = $ reg $ this-> లింగం = $ లింగం} పబ్లిక్ ఫంక్షన్ __isset ($ content) {echo '{$ content} property private private __ issett () పద్ధతి స్వయంచాలకంగా పిలువబడుతుంది. 'echo isset ($ this -> $ content)}} $ obj = క్రొత్త విద్యార్థి (' అశోక్ ', 30) // ప్రారంభంలో కేటాయించబడింది. echo isset ($ obj-> లింగం), '' echo echoet ($ obj-> name), '' echo isset ($ obj-> reg), ''?>

  • __సెట్ ($ కంటెంట్): నిర్వచించబడని లేదా ప్రాప్యత చేయలేని సభ్యుని కోసం రీసెట్ () కు కాల్ చేసేటప్పుడు ఈ పద్ధతి పిలువబడుతుంది.
name = $ name $ this-> reg = $ reg $ this-> లింగం = $ లింగం} పబ్లిక్ ఫంక్షన్ __ అన్‌సెట్ ($ కంటెంట్) {echo 'మేము తరగతి వెలుపల సెట్ చేయని () పద్ధతిని ఉపయోగించినప్పుడు ఇది స్వయంచాలకంగా పిలువబడుతుంది. 'echo isset ($ this -> $ content)}} $ obj = క్రొత్త విద్యార్థి (' అశోక్ ', 30) // ప్రారంభంలో కేటాయించబడింది. సెట్ చేయని ($ obj-> లింగం) సెట్ చేయని ($ obj-> పేరు) సెట్ చేయని ($ obj-> reg)?>

  • __ నిద్ర (): సీరియలైజ్ () ను అమలు చేసేటప్పుడు ఈ పద్ధతిని మొదట అంటారు. ఇది సీరియలైజేషన్‌కు ముందు PHP తరగతి వస్తువులను శుభ్రపరచడంలో వస్తువు యొక్క ఆస్తి శ్రేణిని తిరిగి ఇస్తుంది.
name = $ name $ this-> reg = $ reg $ this-> లింగం = $ లింగం} పబ్లిక్ ఫంక్షన్ __ స్లీప్ () {echo 'తరగతి వెలుపల సీరియలైజ్ () పద్ధతిని పిలిచినప్పుడు దీనిని పిలుస్తారు. '$ this-> name = base64_encode ($ this-> name) రిటర్న్ అర్రే (' name ',' reg ') // ఇది విలువలను తిరిగి ఇవ్వాలి, వీటిలో మూలకాలు తిరిగి వచ్చిన లక్షణాల పేరు. }} $ obj = క్రొత్త విద్యార్థి ('అశోక్') // ప్రారంభంలో కేటాయించబడింది. echo serialize ($ obj) echo ''?>

  • __మెల్కొనుట(): దేశీకరణ () అమలు చేయబడినప్పుడు ఈ పద్ధతిని పిలుస్తారు. దేశీకరణ () ను ప్రారంభించడంలో వస్తువుల లక్షణాలు మరియు వనరులను పునరుద్ధరించడానికి ఇది పనిని రివర్స్ చేస్తుంది.
name = $ name $ this-> reg = $ reg $ this-> లింగం = $ లింగం} పబ్లిక్ ఫంక్షన్ __ స్లీప్ () {echo 'తరగతి వెలుపల సీరియలైజ్ () పద్ధతిని పిలిచినప్పుడు దీనిని పిలుస్తారు. '$ this-> name = base64_encode ($ this-> name) రిటర్న్ అర్రే (' name ',' reg ') // ఇది విలువలను తిరిగి ఇవ్వాలి, వీటిలో మూలకాలు తిరిగి వచ్చిన లక్షణాల పేరు. } పబ్లిక్ ఫంక్షన్ __ వేక్అప్ () {ఎకో 'అన్‌సెరియలైజ్ () పద్ధతిని తరగతి వెలుపల పిలిచినప్పుడు దీనిని పిలుస్తారు. '$ this-> name = 2 $ this-> లింగం =' మగ '}} $ obj = క్రొత్త విద్యార్థి (' అశోక్ ') // ప్రారంభంలో కేటాయించబడింది. var_dump (serialize ($ obj)) var_dump (unserialize (serialize ($ obj)))?>

ph పట్టికలోకి php చొప్పించండి
  • __toString (): ఒక వస్తువును నేరుగా ముద్రించడానికి ఎకో పద్ధతిని ఉపయోగిస్తున్నప్పుడు ఈ పద్ధతి పిలువబడుతుంది. PHP ప్రింటింగ్ స్టేట్‌మెంట్‌లతో తరగతి ఉదంతాలను ఉపయోగిస్తున్నప్పుడు ఇది స్ట్రింగ్ విలువను తిరిగి ఇస్తుందని భావిస్తున్నారు.
name = $ name $ this-> reg = $ reg $ this-> జెండర్ = $ లింగం} పబ్లిక్ ఫంక్షన్ __toString () {తిరిగి 'గో గో గో'}} $ obj = కొత్త విద్యార్థి ('అశోక్') // ప్రారంభంలో కేటాయించబడింది. echo $ obj?>

  • __సహాయం కోరు(): ఈ పద్ధతి ఒక తరగతిలో నిర్వచించబడింది, ఇది ఒక వస్తువును కాల్ చేసే విధంగా కాల్ చేయడానికి ప్రయత్నిస్తున్నప్పుడు పిలువబడుతుంది.
name = $ name $ this-> reg = $ reg $ this-> లింగం = $ లింగం} పబ్లిక్ ఫంక్షన్ __invoke () {echo 'ఇది ఒక వస్తువు'}} $ obj = క్రొత్త విద్యార్థి ('అశోక్') // ప్రారంభంలో కేటాయించబడింది . $ obj ()?>

  • __ సెట్_స్టేట్ ($ శ్రేణి): Var_export () కు కాల్ చేసేటప్పుడు ఈ పద్ధతిని పిలుస్తారు. వస్తువుల ఆస్తి శ్రేణిని ఎగుమతి చేసేటప్పుడు ఇది ఒక స్టాటిక్ పద్ధతి మరియు అటువంటి అర్రే వేరియబుల్‌ను దాని వాదన వలె ఆశిస్తుంది.
name = $ name $ this-> reg = $ reg $ this-> లింగం = $ లింగం}} $ obj = క్రొత్త విద్యార్థి ('అశోక్') // ప్రారంభంలో కేటాయించబడింది. var_export ($ obj)?>

  • __ క్లోన్ (): వస్తువు కాపీ చేసినప్పుడు ఈ పద్ధతి అంటారు.
name = $ name $ this-> reg = $ reg $ this-> లింగం = $ లింగం} పబ్లిక్ ఫంక్షన్ __ క్లోన్ () {echo __METHOD __. 'మీరు వస్తువును క్లోనింగ్ చేస్తున్నారు. '}} $ obj = క్రొత్త విద్యార్థి (' అశోక్ ') // ప్రారంభంలో కేటాయించబడింది. $ obj2 = క్లోన్ $ obj var_dump ('object1:') var_dump ($ obj) echo '' var_dump ('object2:') var_dump ($ obj2)?>

  • __debugInfo (): చూపించవలసిన లక్షణాలను పొందడానికి ఒక వస్తువును డంప్ చేసేటప్పుడు ఈ పద్ధతిని var_dump () అంటారు. ఒక వస్తువుపై పద్ధతి నిర్వచించబడకపోతే, అన్ని ప్రభుత్వ, రక్షిత మరియు ప్రైవేట్ లక్షణాలు చూపబడతాయి.
prop = $ val} పబ్లిక్ ఫంక్షన్ __debugInfo () {తిరిగి ['propSquared' => $ this-> prop ** 2,]}} var_dump (క్రొత్త నమూనా (22%)?>

విలీనం క్రమబద్ధీకరణ c ++ శ్రేణి

దీనితో, మేము PHP వ్యాసంలో ఈ మేజిక్ పద్ధతి యొక్క ముగింపుకు వస్తాము. PHP లోని వివిధ మేజిక్ పద్ధతుల గురించి మీకు ఒక ఆలోచన వచ్చిందని నేను ఆశిస్తున్నాను.

చూడండి ప్రపంచవ్యాప్తంగా విస్తరించి ఉన్న 250,000 మందికి పైగా సంతృప్తికరమైన అభ్యాసకుల నెట్‌వర్క్‌తో విశ్వసనీయ ఆన్‌లైన్ లెర్నింగ్ సంస్థ ఎడురేకా చేత.

మాకు ప్రశ్న ఉందా? దయచేసి వ్యాఖ్యల విభాగంలో పేర్కొనండి ” లో మేజిక్ పద్ధతులు PHP ”మరియు నేను మీ వద్దకు తిరిగి వస్తాను.