Blogger Information
Blog 71
fans 1
comment 1
visits 86950
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
声明属性之类属性与类常量
小威的博客
Original
572 people have browsed it
  • 声明属性


     *类属性与类常量

     * 1.类属性仅允许使用以下类型的数据进行初始化

     * 标量和数组字面量:字符串,数值,常量,数组,原型文档(php5.3+)

     * 2.不允许使用:变量,表达式,对象

     * 3.类常量使用关键字const声明,不允许设置访问限制符,强制为public,不能更改

     * 4.类常量是属性类的,不属性它的某个实例对象,必须使用类才可以访问

     * 5.访问类常量要使用范围解析符::,双冒号

     * 在类中使用关键字self表示当前类,在外部可直接使用类名

实例

<?php

define('SITE_NAME','PHP中文网');
class User1 
{
    private $siteName = SITE_NAME;
    private $name = '老顽童';
    private $email = 'lwt@php.cn';
    private $course = ['php','java','python'];
    const LECTURE = '朱老师';


    //构造方法
    public function __construct($name='',$email='', $siteName='',array $course=[]) 
    {
        //如果传参,则使用新值初始化属性,否则使用默认值
        $name ? ($this->name = $name) : $this->name;
        $email ? ($this->email = $email) : $this->email;
        $siteName ? ($this->siteName = $siteName) : $this->siteName;
        $course ? ($this->course = $course) : $this->course;
        
    }
    
    //查询器
    public function __get($name)
    {
        return $this->$name;
    }
    
    //设置器
    public function __set($name,$value)
    {
        return $this->$name = $value;
    }
    
    //在类中访问类常量,使用self来引用当前类名
    public function getConst()
    {
        //类内部也可以直接使用当前类名
//        return User1::LECTURE;
        //推荐使用self:当类名改变时,不必修改内部对它的引用
        return self::LECTURE;
    }  
    
}

运行实例 »

点击 "运行实例" 按钮查看在线实例

  • 测试页面

实例

<?php

//类属性与类常量
require './class/User1.php';

//$user1 = new User1(); //不传值输出默认值
$user1 = new User1('洪七公','hqg@php.cn','www.php.cn',['html','css','javascript']);

echo  $user1->name,'<br>';
echo  $user1->email,'<br>';
echo  $user1->siteName,'<br>';
echo  '<pre>'.print_r($user1->course,true).'</pre>';
echo User1::LECTURE;  //外部访问类常量,必须使用范围解析符::,就是双冒号
echo '<br>';

//访问类中的类常量
echo $user1->getConst();

运行实例 »

点击 "运行实例" 按钮查看在线实例


Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post