Webhosting and cheap domain registration services
  

 Home

PHP Manual
PrevChapter 18. Classes and Objects (PHP 5)Next

Visibility

The visibility of a property or method can be defined by prefixing the declaration with the keywords: public, protected or private. Public declared items can be accessed everywhere. Protected limits access to inherited classes (and to the class that defines the item). Private limits visibility only to the class that defines the item.

Members Visibility

Class members must be defined with public, private, or protected.

Example 18-7. Member declaration

<?php

class MyClass {
   
public    $public     = "MyClass::public!\n";
   
protected $protected  = "MyClass::Protected!\n";
   
protected $protected2 = "MyClass::Protected2!\n";
   
private   $private    = "MyClass::private!\n";

   function
printHello() {
      print
"MyClass::printHello() " . $this->private;
      print
"MyClass::printHello() " . $this->protected;
      print
"MyClass::printHello() " . $this->protected2;
   }
}

class
MyClass2 extends MyClass {
   
protected $protected = "MyClass2::protected!\n";

   function
printHello() {

      
MyClass::printHello();    

      print
"MyClass2::printHello() " . $this->public;
      print
"MyClass2::printHello() " . $this->protected;
      print
"MyClass2::printHello() " . $this->protected2;

      
/* Will result in a Fatal Error: */
      //print "MyClass2::printHello() " . $this->private; /* Fatal Error */

   
}
}

$obj = new MyClass();

print
"Main:: " . $obj->public;
//print $obj->private; /* Fatal Error */
//print $obj->protected;  /* Fatal Error */
//print $obj->protected2;  /* Fatal Error */

$obj->printHello(); /* Should print */

$obj2 = new MyClass2();
print
"Main:: " . $obj2->private; /* Undefined */

//print $obj2->protected;   /* Fatal Error */
//print $obj2->protected2;  /* Fatal Error */

$obj2->printHello();
?>

Note: The use PHP 4 use of declaring a variable with the keyword 'var' is no longer valid for PHP 5 objects. For compatibility a variable declared in php will be assumed with public visibility, and a E_STRICT warning will be issued.


PrevHomeNext
Constructors and DestructorsUp::

 

  

 

 

 Network sites:

Domain registration : Domain registration and domain name transfer services
Cheap Domain Registrar : Cheap domains or register domain name from $5.95
 

Disclaimer: This documentation is provided only for the benefits of our hosting customers.
For authoritative source of the documentation, please refer to http://www.php.net/docs.php