Maison  >  Questions et réponses  >  le corps du texte

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 ?

<?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 ?)

淡淡烟草味淡淡烟草味2663 Il y a quelques jours889

répondre à tous(3)je répondrai

  • 世界只因有你

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

    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/...

    répondre
    0
  • 漂亮男人

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

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

    répondre
    0
  • 代言

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

    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.

    répondre
    0
  • Annulerrépondre