批改状态:未批改
老师批语:
使用面象对象方式编程,创建类,并 使用 __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个数据
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号