博客列表 >类-9.03

类-9.03

Yyk.的博客
Yyk.的博客原创
2018年09月11日 15:22:20567浏览

类声明与类的实例化

实例

<?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不用)



今天开始补作业!!!!!!!!!!



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