Rumah > Soal Jawab > teks badan
<?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?)
世界只因有你2017-06-14 10:51:58
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/...
漂亮男人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
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.