Comment limiter les paramètres de méthode en php ? Le paramètre est un tableau. Comment spécifier le numéro et les noms de clé des éléments du tableau transmis ?
淡淡烟草味
淡淡烟草味 2017-06-14 10:49:58
0
3
924
<?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);
    }
}
?>

Dans la méthode connect, le nombre de tableaux entrants doit être de 5 : keyarray($dbhost,$dbuser,$dbpsw,$dbname,$dbcharset)

Je suis habitué au typage fort de Java, mais j'ai l'impression que PHP n'est pas rigoureux à de nombreux endroits. Cela augmentera-t-il la quantité de code dans le corps de la méthode ? (Écrire le jugement dans le corps de la méthode ?)

淡淡烟草味
淡淡烟草味

répondre à tous(3)
世界只因有你

Définissez un tableau de valeurs standard, utilisez array_merge pour fusionner le tableau standard avec les paramètres transmis et obtenez la valeur en fonction du nom de clé du tableau standard lors de son utilisation.
Référence : 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}");
        }
    }
}
代言

Vous pouvez envisager de l'utiliserarray_diff

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

La comparaison renvoie les valeurs qui se trouvent dans le tableau1 mais pas dans le tableau2 ou dans tout autre tableau de paramètres.

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal