关于php面向的特性之封装

简介:
面向对象的封装特性  

Private  Class star{ 
    public $name; 
    private $age; 
    private $weight;    
    
    //构造函数,在类被实例化之后,第一个被自动执行的方法,不需要人工进行手动调用 
    function __struct($name,$age,$weight){          
        $this->name=$name;      
        $this->age=$age;      
        $this->weight=$weight; 
    }    
    
    //当对象访问类的私有属性时,系统会自动调用 
    private function __get($varName){       
        return $this->$varName; 
    }   
    
    //当对象访问类的私有属性,并为私有属性赋值时,系统会自动调用 
    private function __set($varName,$strValue){       
        return $this->$varName=$strValue; 
    }    
    
    //当对象 访问类的私有属性,并使用isset()函数判断对象的私有属性是否存在时,系统自动调用__isset() 
    private function __isset($strName){       
        return isset($this->$strName);  
    }    
    
    //当对象访问类的私有属性,并使用unset()函数销毁对象的私有属性的时候,系统自动调用__unset()魔术方法  
    
    private function __unset($strName){      
        unset($this->$strName);//unset($var)销毁变量时没有返回值  
    }   
}   

$star=new star;  
echo $star->name; //访问对象的公共属性,可以直接访问  
$star->="李小龙"; //可以访问对象的公共属性,并赋值  
isset($star->name); //可以在类的外部直接使用isset()函数判断类的公共属性是否存在  
unset($star->name); //可以再类的外部直接使用unset()函数来对对象的公共属性进行销毁   

/////////////关于私有属性的操作///////////////

//不能在类的外部直接访问类的私有属性  
echo $star->age; //return error 
  

//不能再类的外部直接访问类的私有属性,并为其赋值 
$star->age="30";//return error 


//不能在类的外部直接判断对象的私有属性是否存在    
echo isset($star->weight);  //return error

//不能在类的外部直接销毁类的私有属性  
unset($star->weight); //return error 


//////////////////系统自动调用类的魔术方法访问私有属性,并对私有属性进行操作//////////////////////////  

//对象访问类的私有属性,系统自动调用__get()魔术方法 

echo $star->age;   

//对象访问类的私有属性,并为该私有属性赋值,系统自动调用__set()魔术方法 
$star->weight="65kg";   

//对象访问类的私有属性,并使用isset()函数判断该私有属性是否存在,系统自动调用__isset()魔术方法 
isset($star->age);   

//对象访问类的私有属性,并使用unset()函数销毁该私有属性时,系统自动调用__unset()魔术方法 
unset($star->weight);









本文转自 hgditren 51CTO博客,原文链接:http://blog.51cto.com/phpme/840557,如需转载请自行联系原作者
目录
相关文章
|
11月前
|
API PHP
PHP 8新特性:Match表达式与联合类型实战指南
PHP 8新特性:Match表达式与联合类型实战指南
|
SQL 安全 PHP
PHP 自发布以来一直在 Web 开发领域占据重要地位,PHP 8 更是带来了属性、刚性类型等新特性。
【10月更文挑战第1天】PHP 自问世以来,凭借其易用性和灵活性,在 Web 开发领域迅速崛起。从简单的网页脚本语言逐步演进为支持面向对象编程的现代语言,尤其自 PHP 5.3 引入命名空间后,代码组织和维护变得更加高效。PHP 7 的性能优化和 PHP 8 的新特性(如属性和刚性类型)进一步巩固了其地位。框架如 Laravel、Symfony、Yii2 和 CodeIgniter 等简化了开发流程,提高了效率和安全性。
237 2
|
PHP 开发者
PHP 7新特性深度解析与实践应用
【9月更文挑战第17天】本文将深入探讨PHP 7的新特性及其对开发者的实际影响,同时通过实例演示如何有效利用这些特性优化代码和提高性能。我们将从类型声明的增强开始,逐步深入到其他关键改进点,最后通过一个综合案例展示如何将这些新特性应用于日常开发中。
|
缓存 PHP 开发者
PHP 7新特性及其影响
本文主要介绍了PHP 7的新特性以及这些新特性对开发者和项目的影响。文章详细解析了PHP 7的性能提升、类型声明、空合并运算符等新特性,并讨论了如何利用这些新特性来优化代码。同时,文章也探讨了这些新特性可能带来的问题和挑战,如兼容性问题和学习成本等。最后,文章以一个实际的代码示例来展示如何使用PHP 7的新特性来优化代码。
207 1
|
编译器 PHP 开发者
PHP 8新特性解析与实战应用####
随着PHP 8的发布,这一经典编程语言迎来了诸多令人瞩目的新特性和性能优化。本文将深入探讨PHP 8中的几个关键新功能,包括命名参数、JIT编译器、新的字符串处理函数以及错误处理改进等。通过实际代码示例,展示如何在现有项目中有效利用这些新特性来提升代码的可读性、维护性和执行效率。无论你是PHP新手还是经验丰富的开发者,本文都将为你提供实用的技术洞察和最佳实践指导。 ####
288 1
|
PHP 开发者
PHP 7新特性深度解析
【10月更文挑战第40天】随着PHP 7的发布,这个广泛使用的语言带来了许多令人兴奋的新特性和性能改进。本文将深入探讨PHP 7的主要变化,包括类型声明、错误处理机制、性能优化等方面,帮助开发者更好地理解和应用这些新特性。
244 5
|
编译器 PHP 开发者
PHP 7新特性深度解析
在这篇文章中,我们将深入探讨PHP 7带来的一系列新特性,包括性能提升、语法改进等方面。通过对比分析,我们将揭示这些变化如何影响开发者的编码实践和应用程序的性能优化。
|
PHP 开发者
PHP 7新特性深度解析及其最佳实践
【10月更文挑战第31天】本文将深入探讨PHP 7带来的革新,从性能提升到语法改进,再到错误处理机制的变革。我们将通过实际代码示例,展示如何高效利用这些新特性来编写更加健壮和高效的PHP应用。无论你是PHP新手还是资深开发者,这篇文章都将为你打开一扇窗,让你看到PHP 7的强大之处。
191 1
|
安全 编译器 PHP
PHP 8新特性解析与实践应用####
————探索PHP 8的创新功能及其在现代Web开发中的实际应用
|
PHP 数据安全/隐私保护 开发者
PHP 7新特性解析与实践
【10月更文挑战第20天】本文将深入浅出地介绍PHP 7的新特性,包括性能提升、语法改进等方面。我们将通过实际代码示例,展示如何利用这些新特性优化现有项目,提高开发效率。无论你是PHP新手还是资深开发者,都能从中获得启发和帮助。