很多站长朋友们都不太清楚php发送前封装,今天小编就来给大家整理php发送前封装,希望对各位有所帮助,具体内容如下:
本文目录一览: 1、 什么是php中的封装 2、 PHP如何封装方法 3、 PHP函数封装! 4、 thinkphp3.2上传图片如何进行封装? 什么是php中的封装封装是php面向对象的其中一个特性,将多个可重复使用的函数封装到一个类里面。在使用时直接实例化该类的某一个方法,获得需要的数据
如果是私有的方法和属性值,外部无法访问,具有一定的保护作用。
面向对象之封装 例子
class A{
public $name = '老王';
// protected $name = '老王';
//private $name = '老王';
//自己访问
public function saya(){
return $this->name;
}
}
//实例化对象
$b = new A;
//public:外部、家族、自己都可以访问
//protected:家族和自己都可以访问,外部无法访问
//private:自己可以访问,外部和家族都无法访问
echo '外部访问:'.$b->name.'<br>'; //如果是私有的,访问不了
echo '家族访问:'.$b->sayb().'<br>';
echo '自己访问:'.$b->saya().'<br>';
PHP如何封装方法//下面定义一个方法,这个方法很简单,就是处理2个数的相加问题
function add($number1, $number2) {
$sum = $number1 + $number2;
echo $sum;
}
//我们来调用add()方法
add(1,2);
/**
说明:
function 这个关键字就是声明方法的。在这个关键字后面的add就是方法的名称,括号中的是参数。
也可以没有参数的。大括号内是方法体。里面是该方法的逻辑。
下面的add(1,2)就是调用add这个方法。如果没有调用方法将不会被执行的。
*/
//定义一个带有返回值的方法
function re($n1, $n2) {
$sum = $n1 + $n2;
return $sum;
}
//调用有返回值的方法,调用这个方法,值是5。
echo re(2,3);
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();
}
thinkphp3.2上传图片如何进行封装?把你的上传部分写在function.php或者继承的父级控制器就行。
如:
/*文件上传*/
function _uploads($savePath='/Picture/'){
$upload = new \Think\Upload();
$upload->maxSize = 3*1024*1024;// 设置附件上传大小
$upload->exts = array('jpg', 'gif', 'png', 'jpeg', 'bmp');// 设置附件上传类型
$upload->autoSub = true;//自动子目录保存文件
$upload->subName = array('date','Y-m-d');//子目录创建方式
$upload->saveName = array('uniqid','');//上传文件命名规则,唯一性
$upload->rootPath = './Uploads/'; // 设置附件上传根目录
$upload->savePath = $savePath; // 设置附件上传(子)目录
// 上传文件
$info = $upload->upload();
return $info;
}
//此处方法调用
public function upFile(){
$file = _uploads('/Picture/');//里面可填写子目录文件路径,支持多文件上传
if($file){
$img = M('img');
//...此处添加所需逻辑处理
foreach ($file as $v) {
//...此处添加所需逻辑处理
//拼接图片地址用于保存数据库
$dataImg['url'] = '/Uploads' . $v['savepath'] . $v['savename'];//根据需求拼接路径,也可在/Uploads前拼成根路径加上项目名称
$img->add($dataImg);
}
}
}
关于php发送前封装的介绍到此就结束了,不知道本篇文章是否对您有帮助呢?如果你还想了解更多此类信息,记得收藏关注本站,我们会不定期更新哦。