很多站长朋友们都不太清楚php封装是什么,今天小编就来给大家整理php封装是什么,希望对各位有所帮助,具体内容如下:
本文目录一览: 1、 PHP 继承、封装、多态 2、 求助,php封装函数 3、 什么是封装?和"public"类似的访问修饰符分别有什么作用 4、 php 函数封装 5、 PHP函数封装! PHP 继承、封装、多态-子类只能继承父类的非私有属性
-子类继承父类后,相当于将父类的属性和方法copy到子类,可以直接使用$this调用该属性;
-php只能单继承,不支持一个类继承多个类。但是一个类可以进行多层继承
类实现封装是为了不让外面的类随意修改一个类的成员变量,所以在定义一个类的成员的时候,我们使用private关键字设置这个成员的访问权限只能被这个类的其他成员方法调用,而不能被其他类中的方法调用,即通过本类中提供的方法来访问本类中的私有属性
-所以在该类中我们会提供一个访问私有属性的方法
-然后我们一般会定义两个方法来实现对一个变量的操作,即__get()和__set()方法
一个类被多个子类继承,如果这个类的某个方法,在多个子类中,表现出不同的功能,我们称这种行为为多态(同一个类的不同子类表现出不同的形态)
-子类继承父类->子类重写父类的方法->父类引用指向子类对象
求助,php封装函数问题问的没毛病.我看了2小时,愣没看出来楼主想问啥. 就好像问问题: "求助,吃饭" 有异曲同工之妙
什么是封装?和"public"类似的访问修饰符分别有什么作用什么是封装? ------------------------------------
封装是php面向对象的其中一个特性,将多个可重复使用的函数封装到一个类里面。在使用时直接实例化该类的某一个方法,获得需要的数据
如果是私有的方法和属性值,外部无法访问,具有一定的保护作用。
《封装即隐藏》
public
当类的成员被声明为public的访问修饰符时,该成员能被外部代码访问和操作。
private(私有的)
被定义为private的成员,对于类内部所有成员都可见,没有访问限制。对类外部不允许访问。
protected(受保护的)
protected稍微有点复杂,被声明为protected的成员,只允许该类的子类进行访问。
什么是抽象?抽象的关键字以及用法-----------------------------------
定义为抽象的类不能被实例化。任何一个类,如果它里面至少有一个方法是被声明为抽象的,那么这个类就必须被声明为抽象的。被定义为抽象的方法只是声明了其调用方式(参数),不能定义其具体的功能实现。
abstract
一个类中至少有一个方法是抽象的,我们称之为抽象类。所以如果定义抽象类首先定义抽象方法。
abstract class class1{
abstract function fun1();
……
}
抽象类的几个特点:
1、不能被实例化,只能被继承
2、继承的派生类当中要把所有抽象方法重载才能实例化
什么是接口?接口的关键字以及用法--------------------
PHP 类是单继承,也就是不支持多继承,当一个类需要多个类的功能时,继承就无能为力了,为此 PHP 引入了类的接口技术。
如果一个抽象类里面的所有方法都是抽象方法,且没有声明变量,而且接口里面所有的成员都是 public 权限的,那么这种特殊的抽象类就叫 接口 。
implements
class 子类 extends 父类 implemtns 接口1, 接口2, ...
{
......
}
接口是特殊的抽象类,也可以看做是一个模型的规范。接口与抽象类大致区别如下:
一个子类如果 implements 一个接口,就必须实现接口中的所有方法(不管是否需要);如果是继承一个抽象类,只需要实现需要的方法即可。
如果一个接口中定义的方法名改变了,那么所有实现此接口的子类需要同步更新方法名;而抽象类中如果方法名改变了,其子类对应的方法名将不受影响,只是变成了一个新的方法而已(相对老的方法实现)。
抽象类只能单继承,当一个子类需要实现的功能需要继承自多个父类时,就必须使用接口。
php 函数封装<?php
class RandCount
{
static public function countInt($number)
{
if ($number > 0 $number <= 100) {
$count = 0;
for($i=0;$i<100;$i++){
if(rand(1,100)==$number){
$count++;
}
}
return $count;
} else {
return '输入数据不合法';
}
}
}
$msg=new RandCount();
echo $msg::countInt(50);
PHP函数封装!你传入的sql不应该那样传,可用性太低,函数或方法应该传入变量,或者说可变的值。上代码,不懂的问
/*封装函数*/
$arr = $_POST;
//$sql = "INSERT INTO ui234_user (username,password,u_name,u_time) VALUES (?,?,?,?)";
$table_name = "ui234_user";
$field_arr = array('username','password','u_name','u_time');
insert($arr,$table_name,$field_arr);
function insert($arr,$table_name,$field_arr){
$sql = 'INSERT INTO '.$table_name.' (';
$field_name = '';//名称
$field_value = '';//值
$field_post = '';//post取值
/*拼装字段*/
foreach ($field_arr as $key => $value) {
if($key == count($field_arr)-1){
$field_name .= $value;
$field_value.= '?';
$field_post .= '$arr["'.$field_name.'"]';
}else{
$field_name .= $value.',';
$field_value.= '?,';
$field_post .= '$arr["'.$value.'"],';
}
}
$sql .= $field_name.') VALUES ('.$field_value.');';
$mysqli=connect();
$stmt = $mysqli->prepare("{$sql}");
$exe_str = '$stmt->bind_param("ssss",'.$field_post.');';
//输出字符串结果
echo $sql.'<hr/>';
echo $exe_str;
//然后用eval执行字符串代码
eval($exe_str);//相当于是:$stmt->bind_param('ssss',$arr['username'],$arr['password'],$arr['u_name'],$arr['u_time']);
stmt->execute();
}
关于php封装是什么的介绍到此就结束了,不知道本篇文章是否对您有帮助呢?如果你还想了解更多此类信息,记得收藏关注本站,我们会不定期更新哦。
查看更多关于php封装是什么 php封装api的详细内容...