搜索

首页  >  问答  >  正文

php怎样限定方法的参数?参数是一个数组,怎样规定传入数组元素的个数和键名?

<?php

class mysql
{
    private $con;
    private $query;


    public function err($error)
    {
        die('操作错误,错误信息为:' . $error);
    }


    public function connect(array $config)
    {
        extract($config);
        $this->con = mysqli_connect($dbhost, $dbuser, $dbpsw);
        if (!$this->con) {
            $this->err(mysqli_connect_error());
        }
        if (!mysqli_select_db($this->con, $dbname)) {
            $this->err(mysqli_error($this->con));
        }
        mysqli_query($this->con, "set name " . $dbcharset);
    }
}
?>

在connect方法中,要规定传入的数组为5个:keyarray($dbhost,$dbuser,$dbpsw,$dbname,$dbcharset)

习惯了Java的强类型,感觉PHP好多地方很不严谨啊,这会增加方法体的代码量吧?(方法体里再写判断?)

淡淡烟草味淡淡烟草味2712 天前921

全部回复(3)我来回复

  • 世界只因有你

    世界只因有你2017-06-14 10:51:58

    定义一个标准的取值数组,使用 array_merge 把标准数组和传递的参数合并,使用时按标准数组的键名取值。
    参考:https://github.com/top-think/...

    回复
    0
  • 漂亮男人

    漂亮男人2017-06-14 10:51:58

    雷雷

    回复
    0
  • 代言

    代言2017-06-14 10:51:58

    可以考虑用array_diff

    array array_diff ( array $array1 , array $array2 [, array $... ] )

    对比返回在 array1 中但是不在 array2 及任何其它参数数组中的值。

    回复
    0
  • 取消回复