博客列表 >面象对象编程初体验+2018年5月3日03时25分

面象对象编程初体验+2018年5月3日03时25分

KongLi的博客
KongLi的博客原创
2018年05月03日 03:23:00759浏览

使用面象对象方式编程,创建类,并 使用 __construct 创建初化构造方法,以及对属性创建魔术方法 __set  __get  等方法


具体如下:

<?php
/**
 * Created by PhpStorm.
 * User: John
 * Date: 2018/5/3
 * Time: 1:44
 */

/**
 * Class StudentClass
 * 学生信息类
 */
class StudentClass
{
    //创建私有的变量
    private $name; //姓名
    private $age; //年龄
    private $sex; //性别
    private $language; //语种

    //声明一个构造方法,在对类进行实例化的时候自动调用,可以在此构造方法中对属性进行初始化
    public function __construct($name,$age,$sex,$language)
    {
        //使用对象访问符对属性赋值
        $this->name=$name;
        $this->age=$age;
        $this->sex=$sex;
        $this->language=$language;
    }

    //为属性创建取值赋值方法,其作用是为过滤一些非正常传参调用,可以在赋值的同时对传来的值进行判断

    /**
     * @return mixed
     */
//    public function getName()
//    {
//        return $this->name;
//    }
//
//    /**
//     * @param mixed $name
//     */
//    public function setName($name)
//    {
//        $this->name = $name;
//    }

    //取值赋值方法简化版,又称为魔术方法,此方法由系统调用,当使用类访问一个私有变量的时候会自动触发此方法
    public function __set($name, $value)
    {
        //对传入的值进行判断/过滤
        // TODO: Implement __set() method.
        
        return $this->$name=$value;
    }

    public function __get($name)
    {
        // TODO: Implement __get() method.
        return $this->$name;
    }
}


测试部分:

<?php
/**
 * Created by PhpStorm.
 * User: John
 * Date: 2018/5/3
 * Time: 2:28
 */

//调用类的实例
require 'class/StudentClass.php';

$student = new StudentClass('张三',18,'男',['国语','英语']);

//普通 set get 方法调用
//$student->setName('李四'); //给name属性赋值
//echo $student->getName(); //取值并打印

//魔术方法设置值 __set
$student->name='王宝强';

//魔术方法取值 __get
echo $student->name;

$student->language=['德语','俄语'];
echo '<br>';
echo print_r($student->language[0]); //取第0个数据


声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议