10.24 (下午) 开课一个月零二十天 (封装)

<?php

class Ren
{
	private $name;
	private $sex;
	private $age; //年龄必须在18-50之间
	
	function __construct($v)
	{
		$this->sex = $v;
	}
	//魔术方法set
	function __set($n,$v)
	{
		if($n=="age")
		{
			if($v>=18 && $v<=50)
			{
				$this->$n = $v;
			}
		}
		else 
		{
			$this->$n = $v;
		}
	}
	
	//魔术方法get
	function __get($n)
	{
		return $this->$n;
	}
	
	//设置age的值
	function setage($a)
	{
		if($a>=18 && $a<=50)
		{
			$this->age = $a;
		}
	}
	//获取age的值
	function getage()
	{
		return $this->age;
	}
	
	function say()
	{	
		echo "hello"; 
	}
	
	//析构方法
	function __destruct()
	{
		echo "这是一个析构方法";
	}
	
	function __tostring()
	{
		return "这个类是人类";
	}
	
	
}

$r = new Ren("男");

$r->setage(20);
echo $r->getage();

$r->say();
$r->age = 30;

echo $r->age;

$r->__get("age");

$r->__set("age",20);

var_dump($r);

//构造方法:写法特殊,执行时间特殊

//OOP三大特性:封装,继承,多态

//封装的目的:为了让类更安全
//封装的做法:
//1.类里面的成员变量做为private
//2.使用成员方法来间接访问成员变量
//3.在该方法里面加限制条件

//php类里面不允许出现同名方法

//函数重载
//在类里面写多个同名方法来实现不同功能
public string Show()
{
	return "显示";
}
public string Show(string a)
{
	return a+"显示";
}
public string Show(string a,string b)
{
	return a+b+"显示";
}
public string Show(int b)
{
	return b+"数字";
}

//1.函数名必须相同
//2.参数个数不同或参数类型不同

//例子:求两个圆之间的阴影面积
$maxr = 20;
$minr = 10;
$mj = 3.14*$maxr*$maxr - 3.14*$minr*$minr;


class Yuan
{
	//代表半径
	public $r;
	
	function __construct($n)
	{
		$this->r = $n;
	}
	
	//求面积的方法
	function MJ()
	{
		return 3.14*$this->r*$this->r;
	}
}

$r1 = new Yuan(20);
$r2 = new Yuan(10);

$mianji = $r1->MJ()-$r2->MJ();

//例子:计算器

$a = 10;
$b = 5;

$jia = $a+$b;
$jian = $a-$b;
$cheng = $a*$b;
$chu = $a/$b;


class jisuan
{
	public $a;
	public $b;
	
	function __construct($n,$m)
	{
		$this->a = $n;
		$this->b = $m;
	}
	
	function jia()
	{
		return $this->a+$this->b;
	}
	function jian()
	{
		return $this->a-$this->b;
	}
	function cheng()
	{
		return $this->a*$this->b;
	}
	function chu()
	{
		return $this->a/$this->b;
	}
	function quyu()
	{
		return $this->a%$this->b;
	}
}

$j = new jisuan(10,5);
$j->quyu();


?>
原文地址:https://www.cnblogs.com/l5580/p/5996794.html