批改状态:未批改
老师批语:
类声明与类的实例化
<?php
header("Content-Type:text/html;charset=utf-8");
//class声明
class Demo1
{
public $name = 'Y';
public $salary = 3000;
protected $sex = 0;
private $age = 19;
public function getSex(){
return ($this->sex ==0) ? '男' : '女';
}
public function getAge(){
return ($this->sex ==0) ? $this->age.'岁' : '无权查看';
}
}
//new进行实例化
$demo1 = new Demo1();
echo $demo1->name.'的工资是'.$demo1->salary.'<br>性别为'.$demo1->getSex().',年龄为'.$demo1->getAge();
?>类常量与类属性的重载
<?php
header("Content-Type:text/html;charset=utf-8");
//class声明
class Demo
{
private $name;
private $course;
private $grade;
//构造器构造方法
public function __construct($name,$course,$grade){
$this->name = $name;
$this->course = $course;
$this->grade = $grade;
}
public function show(){
return $this->name.'的《'.$this->course.'》课程的成绩是: '.$this->grade.'分!';
}
//获取属性的重载
public function __get($x){
if($x == 'grade'){
return '不允许查看';
}
return $this->name;
}
//更新属性的重载
public function __set($name,$value){
if($name == 'grade'){
echo '不允许修改';
}
$this->$name = $value;
}
//属性重载的检测
public function __isset($name){
if($name == 'grade'){
return false;
}
return isset($this->name);
}
//销毁属性的重载
public function __unset($name){
if($name == 'grade'){
return false;
}
unset($this->$name);
}
}
$demo = new Demo('Y','PHP', 82);
echo $demo->grade;
echo '<hr>';
$demo->name = 'YY';
echo $demo->name;
$demo->grade = 60;
echo $demo->grade;
echo '<hr>';
echo isset($demo->grade) ? 'yes' :'no';
echo isset($demo->name) ? 'yes' :'no';
echo '<hr>';
unset($demo->grade);
echo $demo->grade;
unset($demo->name);
echo $demo->name;
?>类的继承与方法重写
<?php
header("Content-Type:text/html;charset=utf-8");
//父类
class Demo
{
public $name;
public $age;
public $salary;
const APP_NAME = '学生管理系统';
public function __construct($name,$age)
{
$this->name = $name;
$this->age = $age;
}
public function __get($name)
{
if(isset($this->$name)){
return $this->$name;
}
return '非法属性';
}
}
//子类
class Demo_1 extends Demo
{
private $sex;
const APP_NAME = '教师管理系统';
public function __construct($name,$age,$sex='male'){
parent::__construct($name,$age);
$this->sex = $sex;
}
public function __get($name){
if(isset($this->$name)){
return $this->$name;
}
return '非法属性';
}
}
$demo = new Demo('Y',23);
$demo1 = new Demo_1('Q',24);
echo Demo::APP_NAME,'<hr>';
echo Demo_1::APP_NAME,'<hr>';
echo $demo->age,'<hr>';
echo $demo1->age,'<hr>';
echo $demo1->sex;
?>类中静态成员的声明与访问
<?php
header("Content-Type:text/html;charset=utf-8");
class Demo
{
public static $pdo = null;
protected static $db = ['type'=>'mysql',
'host'=>'127.0.0.1',
'dbname'=>'php',
'user'=>'root',
'pass'=>'root'];
//连接数据库
public static function connect(){
$dsn = self::$db['type'].':host='.self::$db['host'].';dbname='.self::$db['dbname'];
self::$pdo = new PDO($dsn,self::$db['user'],self::$db['pass']);
}
public static function select($table,$field='*',$salary,$num=5){
$stmt = self::$pdo->prepare("SELECT {$field} FROM {$table} WHERE `salary`>{$salary} LIMIT {$num}");
$stmt->execute();
return $stmt->fetchAll(PDO::FETCH_ASSOC);
}
}
Demo::connect();
$result = Demo::select('admin','id,name,QQ,salary',4000,5);
echo '<pre>';
var_export($result);
?>点击 "运行实例" 按钮查看在线实例
总结:
属性重载:
构造器: __construct --》new demo(‘a’,'b)
获取: __get --》$demo->name
设置(更新): __set -->$demo->name='b'
检测: __isset() -->isset()
销毁: __unset --unset('$demo->name)
访问类中的const
echo Demo::APP_NAME;
类中静态成员不用创建(new不用)
今天开始补作业!!!!!!!!!!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号