# 属性 方法
变量(也称为”属性”),函数(也称为”方法”),都是类的成员.
//markdown 转义字符 “\$” 原样输出
php类属性方法的调用
把成员方法和成员属性封装到类中,隐藏属性和方法实现的细节
可以使一个类继承并拥有另一个已经存在类的成员属性和方法,被继承的类称为父类或基类,继承类为子类
- 子类最多只能继承一个父类,而父类可以有多个子类
- 如果要在子类里面使用父类的方法,可以用父类名::父类方法来表示或者用parent::父类方法来表示
- 私有private只能被自身的类访问
在面向对象中能够根据使用类的上下文来重新定义或改变类的性质和行为。
OC学习篇之—类的三大特性(封装,继承,多态)
声明类属性或方法为静态,就可以不实例化类而直接访问。静态属性不能通过一个类已实例化的对象来访问(但静态方法可以)。
类和对象:静态属性、静态方法
浅析php静态方法与非静态方法的用法区别
常量的值一旦被定义后就不可在程序中更改。
const constant = "value";
PHP常量详解:define和const的区别
如果父类中的方法被声明为 final,则子类无法覆盖该方法。如果一个类被声明为 final,则不能被继承。
PHP面向对象的进阶学习(抽像类、接口、final、类常量)
interface CalInterface{
public function add($mun1,$num2);
public function sub($mun1,$num2);
public function mul($mun1,$num2);
public function div($mun1,$num2);
}
class Calculate implements CalInterface
{
public function add($num1,$num2){
echo "$num1 + $num2 = ".($num1+$num2).PHP_EOL;
}
public function sub($num1,$num2){
echo "$num1 - $num2 = ".($num1-$num2).PHP_EOL;
}
public function mul($num1,$num2){
echo "$num1 * $num2 = ".($num1*$num2).PHP_EOL;
}
public function div($num1,$num2){
echo "$num1 / $num2 = ".($num1/$num2).PHP_EOL;
}
}
$InPut = $_POST['InPut'];
$Cal = new Calculate();
if($pos=strpos($InPut,"+")) {
if( preg_match("/^\d*$/",substr($InPut, 0, $pos)) && preg_match("/^\d*$/",substr($InPut, $pos+1, strlen($InPut)-1)) ){
$num1=vsprintf("%d",substr($InPut, 0, $pos));
$num2=vsprintf("%d",substr($InPut, $pos+1, strlen($InPut)-1));
$Cal->add($num1,$num2);
}
else {
echo "Wrong InPut";
}
}
else if($pos=strpos($InPut,"-")) {
if( preg_match("/^\d*$/",substr($InPut, 0, $pos)) && preg_match("/^\d*$/",substr($InPut, $pos+1, strlen($InPut)-1)) ){
$num1=vsprintf("%d",substr($InPut, 0, $pos));
$num2=vsprintf("%d",substr($InPut, $pos+1, strlen($InPut)-1));
$Cal->sub($num1,$num2);
}
else {
echo "Wrong InPut";
}
}
else if($pos=strpos($InPut,"*")) {
if( preg_match("/^\d*$/",substr($InPut, 0, $pos)) && preg_match("/^\d*$/",substr($InPut, $pos+1, strlen($InPut)-1)) ){
$num1=vsprintf("%d",substr($InPut, 0, $pos));
$num2=vsprintf("%d",substr($InPut, $pos+1, strlen($InPut)-1));
$Cal->mul($num1,$num2);
}
else {
echo "Wrong InPut";
}
}
else if($pos=strpos($InPut,"/")) {
if( preg_match("/^\d*$/",substr($InPut, 0, $pos)) && preg_match("/^\d*$/",substr($InPut, $pos+1, strlen($InPut)-1)) ){
$num1=vsprintf("%d",substr($InPut, 0, $pos));
$num2=vsprintf("%d",substr($InPut, $pos+1, strlen($InPut)-1));
$Cal->div($num1,$num2);
}
else {
echo "Wrong InPut";
}
}
?>
BLOG