Maison > Questions et réponses > le corps du texte
<?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 ?)
世界只因有你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/...
漂亮男人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}");
}
}
}
代言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.