Heim > Fragen und Antworten > Hauptteil
<?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);
}
}
?>
Bei der Verbindungsmethode muss die Anzahl der eingehenden Arrays 5 betragen: keyarray($dbhost,$dbuser,$dbpsw,$dbname,$dbcharset)
Ich bin an die starke Typisierung von Java gewöhnt, aber ich habe das Gefühl, dass PHP an vielen Stellen nicht streng ist. Wird dies die Menge an Code im Methodenkörper erhöhen? (Urteil in den Methodenkörper schreiben?)
世界只因有你2017-06-14 10:51:58
定义一个标准的取值数组,使用 array_merge
把标准数组和传递的参数合并,使用时按标准数组的键名取值。
参考: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
可以考虑用array_diff
array array_diff ( array $array1 , array $array2 [, array $... ] )
对比返回在 array1 中但是不在 array2 及任何其它参数数组中的值。