Bagaimana untuk mengehadkan parameter kaedah dalam php? Parameter ialah tatasusunan Bagaimana untuk menentukan nombor dan nama kunci elemen tatasusunan yang diluluskan?
淡淡烟草味
淡淡烟草味 2017-06-14 10:49:58
0
3
950
<?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);
    }
}
?>

Dalam kaedah sambung, bilangan tatasusunan yang masuk mestilah 5: keyarray($dbhost,$dbuser,$dbpsw,$dbname,$dbcharset)

Saya sudah biasa dengan penaipan Java yang kuat, tetapi saya merasakan PHP tidak ketat di banyak tempat. Adakah ini akan meningkatkan jumlah kod dalam badan kaedah? (Tulis pertimbangan dalam badan kaedah?)

淡淡烟草味
淡淡烟草味

membalas semua(3)
世界只因有你

Tentukan tatasusunan nilai standard, gunakan array_merge untuk menggabungkan tatasusunan standard dengan parameter yang diluluskan dan dapatkan nilai mengikut nama kunci tatasusunan standard apabila menggunakannya.
Rujukan: https://github.com/top-think/...

漂亮男人

function connect(array $config) {
    $requiredColumns = ['host','port','database','username','password'];
    foreach($requiredColumns as $column) {
        if(!isset($config[$column])) {
            throw new Exception("缺少参数{$column}");
        }
    }
}
代言

Anda boleh pertimbangkan untuk menggunakannyaarray_diff

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

Perbandingan mengembalikan nilai yang terdapat dalam tatasusunan1 tetapi tidak dalam tatasusunan2 atau mana-mana tatasusunan parameter lain.

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan