php5 oop6--可见性控制

和其他语言一样,也是通过关键字public,protected,private的限制:
 
php5 oop6--可见性控制<?php 
php5 oop6--可见性控制/** 
php5 oop6--可见性控制 * 定义MyClass 
php5 oop6--可见性控制 */
 
php5 oop6--可见性控制class MyClass 
php5 oop6--可见性控制
php5 oop6--可见性控制        public $public = 'Public';//公有 
php5 oop6--可见性控制        protected $protected = 'Protected';//保护 
php5 oop6--可见性控制        private $private = 'Private';//私有 
php5 oop6--可见性控制 
php5 oop6--可见性控制        function printHello() 
php5 oop6--可见性控制        { 
php5 oop6--可见性控制                echo $this->public;echo "<br/>"
php5 oop6--可见性控制                echo $this->protected;echo "<br/>"
php5 oop6--可见性控制                echo $this->private;echo "<br/>"
php5 oop6--可见性控制        } 
php5 oop6--可见性控制
php5 oop6--可见性控制 
php5 oop6--可见性控制$obj = new MyClass(); 
php5 oop6--可见性控制echo $obj->public// 可以 
php5 oop6--可见性控制//echo $obj->protected; // 致命错误 
php5 oop6--可见性控制//echo $obj->private; // 致命错误 
php5 oop6--可见性控制$obj->printHello(); // 输出 Public, Protected and Private 
php5 oop6--可见性控制 
php5 oop6--可见性控制 
php5 oop6--可见性控制/** 
php5 oop6--可见性控制 * 定义 MyClass2 
php5 oop6--可见性控制 */
 
php5 oop6--可见性控制class MyClass2 extends MyClass 
php5 oop6--可见性控制
php5 oop6--可见性控制        // 对于公有和保护方法或成员,我们可以重新声明,但私有的不可以 
php5 oop6--可见性控制        protected $protected = 'Protected2'; 
php5 oop6--可见性控制 
php5 oop6--可见性控制        //重写    
php5 oop6--可见性控制        function printHello() 
php5 oop6--可见性控制        { 
php5 oop6--可见性控制            echo "这个是MyClass2的:";echo "<br/>"
php5 oop6--可见性控制                echo $this->public;echo "<br/>"
php5 oop6--可见性控制                echo $this->protected;echo "<br/>"
php5 oop6--可见性控制                //echo $this->private;echo "<br/>";不能访问到父类的私有属性 
php5 oop6--可见性控制        } 
php5 oop6--可见性控制
php5 oop6--可见性控制 
php5 oop6--可见性控制$obj2 = new MyClass2(); 
php5 oop6--可见性控制echo $obj2->public// 可以 
php5 oop6--可见性控制//echo $obj2->private; // 未定义 
php5 oop6--可见性控制//echo $obj2->protected; // 致命错误 
php5 oop6--可见性控制$obj2->printHello(); // 输出 Public, Protected2, Undefined 
php5 oop6--可见性控制 
php5 oop6--可见性控制?>    
 
当然通过这些访问控制符,我们也可以对函数实现同样的可访问控制:
 
php5 oop6--可见性控制<?php 
php5 oop6--可见性控制/** 
php5 oop6--可见性控制 * 定义 MyClass 
php5 oop6--可见性控制 */
 
php5 oop6--可见性控制class MyClass 
php5 oop6--可见性控制
php5 oop6--可见性控制        // 构造函数必须是public 
php5 oop6--可见性控制        public function __construct() { } 
php5 oop6--可见性控制 
php5 oop6--可见性控制        // 声明一个public 的方法 
php5 oop6--可见性控制        public function MyPublic() { } 
php5 oop6--可见性控制 
php5 oop6--可见性控制        // 声明 protected 方法 
php5 oop6--可见性控制        protected function MyProtected() { } 
php5 oop6--可见性控制 
php5 oop6--可见性控制        // 声明private 方法 
php5 oop6--可见性控制        private function MyPrivate() { } 
php5 oop6--可见性控制 
php5 oop6--可见性控制        // 默认是public的 
php5 oop6--可见性控制        function Foo() 
php5 oop6--可见性控制        { 
php5 oop6--可见性控制          //类里面可以直接访问 
php5 oop6--可见性控制                $this->MyPublic(); 
php5 oop6--可见性控制                $this->MyProtected(); 
php5 oop6--可见性控制                $this->MyPrivate(); 
php5 oop6--可见性控制        } 
php5 oop6--可见性控制
php5 oop6--可见性控制 
php5 oop6--可见性控制$myclass = new MyClass; 
php5 oop6--可见性控制$myclass->MyPublic(); // 可以 
php5 oop6--可见性控制$myclass->MyProtected(); // 致命错误 
php5 oop6--可见性控制$myclass->MyPrivate(); //致命错误 
php5 oop6--可见性控制$myclass->Foo();    
php5 oop6--可见性控制 
php5 oop6--可见性控制 
php5 oop6--可见性控制/** 
php5 oop6--可见性控制 * 定义 MyClass2 
php5 oop6--可见性控制 */
 
php5 oop6--可见性控制class MyClass2 extends MyClass 
php5 oop6--可见性控制
php5 oop6--可见性控制        //public 
php5 oop6--可见性控制        function Foo2() 
php5 oop6--可见性控制        { 
php5 oop6--可见性控制                $this->MyPublic(); 
php5 oop6--可见性控制                $this->MyProtected(); 
php5 oop6--可见性控制                $this->MyPrivate(); // 致命错误 
php5 oop6--可见性控制        } 
php5 oop6--可见性控制
php5 oop6--可见性控制 
php5 oop6--可见性控制$myclass2 = new MyClass2; 
php5 oop6--可见性控制$myclass2->MyPublic(); // 可以 
php5 oop6--可见性控制$myclass2->Foo2();    
php5 oop6--可见性控制 
php5 oop6--可见性控制/** 
php5 oop6--可见性控制 * 定义Bar 
php5 oop6--可见性控制 */
 
php5 oop6--可见性控制    
php5 oop6--可见性控制class Bar    
php5 oop6--可见性控制
php5 oop6--可见性控制        public function test() { 
php5 oop6--可见性控制                $this->testPrivate(); 
php5 oop6--可见性控制                $this->testPublic(); 
php5 oop6--可见性控制        } 
php5 oop6--可见性控制 
php5 oop6--可见性控制        public function testPublic() { 
php5 oop6--可见性控制                echo "Bar::testPublic\n"
php5 oop6--可见性控制        } 
php5 oop6--可见性控制         
php5 oop6--可见性控制        private function testPrivate() { 
php5 oop6--可见性控制                echo "Bar::testPrivate\n"
php5 oop6--可见性控制        } 
php5 oop6--可见性控制
php5 oop6--可见性控制 
php5 oop6--可见性控制class Foo extends Bar    
php5 oop6--可见性控制
php5 oop6--可见性控制        public function testPublic() { 
php5 oop6--可见性控制                echo "Foo::testPublic\n"
php5 oop6--可见性控制        } 
php5 oop6--可见性控制         
php5 oop6--可见性控制        private function testPrivate() { 
php5 oop6--可见性控制                echo "Foo::testPrivate\n"
php5 oop6--可见性控制        } 
php5 oop6--可见性控制
php5 oop6--可见性控制 
php5 oop6--可见性控制$myFoo = new Foo(); 
php5 oop6--可见性控制 
php5 oop6--可见性控制//通过继承来的公有方法Bar::test() 
php5 oop6--可见性控制$myFoo->test(); // Bar::testPrivate    
php5 oop6--可见性控制                                      // Foo::testPublic 
php5 oop6--可见性控制?>    
 



本文转自 xcf007 51CTO博客,原文链接:http://blog.51cto.com/xcf007/106126,如需转载请自行联系原作者
上一篇:C# 视频监控系列(1):准备


下一篇:网络视频会议 多媒体协作的平台