php 对象方式传入参数

类是单例模式,对象方式传入参数,如果参数过多是,使用形参容易混乱

class Object {

    /**
     * 基本配置信息
     * @var array
     */
    private $config = array(
        ‘dbms‘=>    ‘mysql‘,    //数据库类型
        ‘host‘=>    ‘localhost‘,//数据库主机名
        ‘dbName‘=>  ‘back‘,    //使用的数据库
        ‘user‘=>    ‘root‘,     //数据库连接用户名
        ‘pass‘=>    ‘‘,          //对应的密码
        ‘char‘=>    ‘utf8‘,  // 字符集
        ‘long_conn‘=>false, // 是否是长连接
    );
    // 数据连接 dsn
    private $dsn="";

    private static $_instance = null;

    /** 初始化对象
     * @parem $config  array
     * */
    private function __construct($config = array())
    {
        $this->config   =   array_merge($this->config,$config);
        $this->str_dsn();
    }

    //公有化获取实例方法
    public static function getInstance(){
        if (!(self::$_instance instanceof Singleton)){
            self::$_instance = new Object();
        }
        return self::$_instance;
    }

    //私有化克隆方法
    private function __clone(){

    }

    // 拼接dsn 连接字符串
    private function str_dsn()
    {
        return  $this->dsn="$this->dbms:host=$this->host;dbname=$this->dbName;charset=$this->char";
    }

    // pdo 连接
    public  function conn()
    {
        if($this->config[‘long_conn‘]==true)
        {
            $this->config[‘long_conn‘]=array(PDO::ATTR_PERSISTENT => true);
        }else
        {
            $this->config[‘long_conn‘]=array();
        }
        try {       // 实例化 PDO 对象
            $pdo = new PDO($this->dsn, $this->config[‘user‘], $this->config[‘pass‘],$this->config[‘long_conn‘]);
            echo ‘对象:‘;
            var_dump($pdo);
            echo "<br/>";
            echo ‘参数 user 值: ‘.$this->user;

        } catch (PDOException $e) {
            die ("Error!: " . $e->getMessage() . "<br/>");
        }
    }

    /**
     * 使用 $this->name 获取配置
     * @param  string $name 配置名称
     * @return multitype    配置值
     */
    public function __get($name)
    {
        return $this->config[$name];
    }

    public function __set($name,$value)
    {
        if(isset($this->config[$name]))
        {
            $this->config[$name] = $value;
        }
    }

    public function __isset($name)
    {
        return isset($this->config[$name]);
    }
}

调用示例

$singleton=Object::getInstance();
$singleton->pass="admin";
$singleton->conn();
echo "<br/>";
$singleton->conn();

页面显示结果

对象:object(PDO)#2 (0) { }
参数 user 值: root
对象:object(PDO)#2 (0) { }
参数 user 值: root

原文地址:https://www.cnblogs.com/xuey/p/9744665.html

时间: 2024-09-30 23:56:15

php 对象方式传入参数的相关文章

JS对象转URL参数(原生JS和jQuery两种方式)

转自:点击打开链接 现在的js框架将ajax请求封装得非常简单,例如下面: [javascript] view plain copy $.ajax({ type: "POST", url: "some.php", data: { name: "John", location: "Boston" } }).done(function( msg ) { alert( "Data Saved: " + msg )

报表制作1(传入对象和其他参数)

转自:http://www.cnblogs.com/ms-grf/p/6755581.html 打印js $scope.printObserveRecord = function () { if ($scope.printObserveRecordShow) { var erObservationDetailList = []; erObservationDetailList.push($scope.erObservationDetail); $scope.printInfoObject = {

PHP命令行脚本接收传入参数的三种方式

通常PHP都做http方式请求了,可以使用GET or POST方式接收参数,有些时候需要在shell命令下把PHP当作脚本执行,比如定时任务.这就涉及到在shell命令下如何给php传参的问题,通常有三种方式传参. 一.使用$argv or $argc参数接收 <?php /** * 使用 $argc $argv 接受参数 */ echo "接收到{$argc}个参数"; print_r($argv); 以下是测试的结果 二.使用getopt函数(推荐使用这种方法) <?

jsp中几种跳转方式和参数共享

整理了一下jsp入门中的跳转和数据共享问题,写成这篇博文希望对大家有帮助,参考文章列在后面: 常用的跳转方式有以下几种: (1)href超链接标记,属于客户端跳转 (2)使用javascript完成,属于客户端跳转 (3)提交表单完成跳转,属于客户端跳转 (4)使用response对象,属于客户端跳转 (5)使用requestDispatcher类,属于服务器跳转 下面一一来看 (1)href超链接标记 这个比较简单,通常写到a标签里即可,来完成指定位置的动态跳转比较方便 代码:<a href=

采用Post请求的方式提交参数并导出excel

一般情况下,我们都是采用get请求的方式导出excel.例如采用如下方式: var exportUrl = '/xxx;'; window.open(exportUrl); 导出excel所需的逻辑参数拼接到url上即可. 但是,如果我们需要提交大量的参数到后台才能导出excel, 亦或者我们提交的参数中有中文,get提交乱码了,那么就可能想使用post提交的方式来导出excel.因为post提交支持更多的参数,从而能解决get提交对url长度的限制问题. 然而,一般的post提交表单,意味着主

NameValuePair方式传参数

今天工作中联调外部的一个接口用post方式传输,我按照文档封装参数成Jason字符串传入,但是对方一直接受参数为空,折腾了半天也没找到问题.很苦恼,检查代码都没有错误,可是为什么对方接受参数为空呢?然后找对方的技术人员联调,看看是怎么回事,也折腾了半天最后发现对方是用NameValuePair方式传参数.虽然这个方式已经过时了,但是在这里记录下,以备以后出现类似的方式传参数. 1 /** 2 /** 3 * 定义了一个list,该list的数据类型是NameValuePair(简单名称值对节点类

delphi的一些语法知识 以及参数传递问题,按引用方式传递参数,按值方式传递参数

//delphi中exit,abort,break,continue 的区别 exit: 退出函数体abort: 遇到异常,安静处理,就是不显示不提示break: 退出当前循环体,包括for ,while, repeat等循环体continue: 结束循环内的本次处理,继续从循环体的开始位置继续执行 Exit 是跳出当前代码块,也就是当前函数,跳出后是要继续向下执行的(如果有后续代码). Abort 是从 EAbort 过来的,可以激发 exception,其实质就是 Abort = Raise

[python]关于函数传入参数

在传入参数时有两个特殊参数,*args,**kwargs,功能如下: def foo(*args, **kwargs): print 'args = ', args print 'kwargs = ', kwargs print '---------------------------------------' if __name__ == '__main__': foo(1,2,3,4) foo(a=1,b=2,c=3) foo(1,2,3,4, a=1,b=2,c=3) foo('a', 1

ajax get方式传递参数

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>JS</title> <style> #box{ width:600px; height:200px; padding:20px; border:1px solid #999; } </style> </head> <