PHP final Keyword In Hindi : Understand final Method and Class In PHP


PHP programming language में final एक predefined non-access modifier है जिसका main purpose classes को Inherit करने से बचाना और , methods को ovverride करने से restrict करना है ।

final keyword का use 3 contexts में किया जाता है -

  1. Methods

  2. Classes

  3. Constants

ध्यान रहे , PHP में classes, methods, और constants (as of PHP 8.1.0) को as final declare किया जा सकता है , properties को आप final declare नहीं कर सकते हैं।

PHP final Method In Hindi

PHP मे methods को final declare करने का main purpose किसी sub class द्वारा override करने से बचाना है , मतलब अगर किसी Method को final declare कर दिया तो उसे किसी भी sub class द्वारा override नहीं किया जा सकता है ।

final method declare करने के लिए function से पहले final prepend कर दिया जाता है।

PHP final method example

<?php class BaseClass { final public function baseclasss_method() { echo "BaseClass::baseclasss_method() called"; } } class ChildClass extends BaseClass { // now override it . public function baseclasss_method() { echo "ChildClass::baseclasss_method() called"; } } ?>

Output

Fatal error: Cannot override final method BaseClass::baseclasss_method()

Example में आप देख सकते हैं कि final Method को override करने पर fatal error generate हुई है , हालाँकि यह sense भी बनाता है कि जो method already final है उसे आप modify नहीं कर सकते हैं ।

जैसे real life में अगर किसी चीज को final बनाते है तो इसका सीधा सा मतलब होता है को वो चीज अब change नहीं हो सकती।

PHP final Class In Hindi

Class को final declare करने का main purpose classes को Inherit करने से बचाना है , मतलब अगर किसी class को final declare कर दिया तो उसे किसी दूसरी class द्वारा Inherit नहीं किया जा सकता है ।

final class declare करने के लिए class से पहले final prepend कर दिया जाता है।

PHP final class example

<?php final class A { public function test() { echo "method of class A"; } } // Inherit class A. class B extends A { } ?>

Output

Fatal error: Class B cannot extend final class A

Example में आप देख सकते हैं कि final class को extend करने पर fatal error generate हुई है।

private methods can not be declared final

अब अगर आप Access specifier / Class visibility के बारे में जानते हैं तो आपको याद होगा कि methods को private इसीलिए करते थे ताकि उन्हें class के बाहर से access न किया जा सके और न ही override किया जा सके।

इसलिए private methods के साथ आप final use नहीं कर सकते हैं , क्योंकि method already protected है , और किसी sub class द्वारा override भी नहीं किया जा सकता फिर इसे final declare करने का कोई मतलब नहीं है।

और अगर ऐसा करते हैं तो error generate होगी।

<?php class BaseClass { final private function baseclasss_method() { echo "BaseClass::baseclasss_method() called"; } } ?>

Output

PHP Warning:  Private methods cannot be final as they are never overridden by other classes

PHP final Constants In Hindi

Class और Method की तरह ही आप किसी class में constants variables को भी final declare कर सकते हैं। constant को final define करने के मतलब है कि किसी भी sub class द्वारा उस constant variable की value को change नहीं किया जा सकता है।

PHP final Constants Example

<?php class A { final public const X = "A"; } class B extends A { // change constant value. public const X = "bar"; } ?>

Output

PHP Fatal error:  B::X cannot override final constant A::X

ध्यान रहे , PHP में 'final' keyword का use properties को constants बनाने के लिए नहीं किया जाता है , properties को constant बनाने के लिए तो 'const' keyword का ही use किया जाता है।

I Hope , अब आप PHP में final keyword के बारे में अच्छे से समझ गए होंगे।

Hey ! I'm Rahul founder of learnhindituts.com. Working in IT industry more than 4.5 years. I love to talk about programming as well as writing technical tutorials and blogs that can help to others .... keep learning :)

Get connected with me - LinkedIn Twitter Instagram Facebook