Understanding Public, Private, and Protected Properties in PHP

Rumman Ansari   Software Engineer   2024-07-18 09:09:56   5510  Share
Subject Syllabus DetailsSubject Details
☰ TContent
☰Fullscreen

Properties can be public, private or protected. Public means that properties can be accessed everywhere, private means properties can be accessed by the class that defines the member and protected means properties can be accessed only within the class itself and by inherited and parent classes.

Example:

Syntax

<span class="pln">

</span><span class="pun">&lt;?</span><span class="pln">php
</span><span class="com">// Define a class</span><span class="pln">
</span><span class="kwd">class</span><span class="pln"> </span><span class="typ">Myclass</span><span class="pln">
</span><span class="pun">{</span><span class="pln">
 </span><span class="com">// Declare $font_size as Public property</span><span class="pln">
 </span><span class="kwd">public</span><span class="pln"> $font_size </span><span class="pun">=</span><span class="str">"18px"</span><span class="pun">;</span><span class="pln"> 
 </span><span class="com">// Declare $font_color as Private property</span><span class="pln">
 </span><span class="kwd">private</span><span class="pln"> $font_color </span><span class="pun">=</span><span class="pln"> </span><span class="str">"blue"</span><span class="pun">;</span><span class="pln"> 
 </span><span class="com">// Declare $string_name as Protected property</span><span class="pln">
 </span><span class="kwd">protected</span><span class="pln"> $string_name </span><span class="pun">=</span><span class="pln"> </span><span class="str">"atnyla"</span><span class="pun">;</span><span class="pln"> 
 </span><span class="com">// Declare a method to print properties value. This is public.</span><span class="pln">
 </span><span class="kwd">function</span><span class="pln"> property_print</span><span class="pun">()</span><span class="pln">
 </span><span class="pun">{</span><span class="pln">
 echo $this</span><span class="pun">-&gt;</span><span class="pln">font_size</span><span class="pun">;</span><span class="pln">
 echo $this</span><span class="pun">-&gt;</span><span class="pln">font_color</span><span class="pun">;</span><span class="pln">
 echo $this</span><span class="pun">-&gt;</span><span class="pln">string_name</span><span class="pun">;</span><span class="pln">
 </span><span class="pun">}</span><span class="pln">
</span><span class="pun">}</span><span class="pln">
$obj </span><span class="pun">=</span><span class="pln"> </span><span class="kwd">new</span><span class="pln"> </span><span class="typ">MyClass</span><span class="pun">;</span><span class="pln">
echo $obj</span><span class="pun">-&gt;</span><span class="pln">font_size</span><span class="pun">;</span><span class="pln"> </span><span class="com">//Display 18px </span><span class="pln">
echo $obj</span><span class="pun">-&gt;</span><span class="pln">font_color</span><span class="pun">;</span><span class="pln"> </span><span class="com">//Fatal error: Cannot access private property Myclass::$font_color in F:\wamp\..</span><span class="pln">
echo $obj</span><span class="pun">-&gt;</span><span class="pln">string_name</span><span class="pun">;</span><span class="pln"> </span><span class="com">//Fatal error: Cannot access protected property Myclass::$string_name in F:\wamp\.. </span><span class="pln">
$obj</span><span class="pun">-&gt;</span><span class="pln">property_print</span><span class="pun">();</span><span class="pln"> </span><span class="com">//Display 18pxbluew3resource</span><span class="pln">
</span><span class="pun">?&gt;</span><span class="pln">

</span>

No Questions Data Available.
No Program Data.

Stay Ahead of the Curve! Check out these trending topics and sharpen your skills.