PHP  
downloads | documentation | faq | getting help | mailing lists | reporting bugs | php.net sites | links | my php.net 
search for in the  
<Constructors and Destructors::>
Last updated: Mon, 16 Jul 2012

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 acessed everywhere. Protected limits access to inherited classes (and to the class that defines the item). Private limits visiblity only to the class that defines the item.

Members Visibility

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

例子 19-3. 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();
?>

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




<Constructors and Destructors::>
 Last updated: Mon, 16 Jul 2012
 
Copyright © 2001-2005 The PHP Group
All rights reserved.
This unofficial mirror is operated at: http://manual.phpv.net/
Last updated: Thu Jul 7 19:13:47 2005 CST