我需要创建一个将用户数据插入" medical_records"有大约30个字段的表。
所以"经典"解决方案是写一些类似的东西:
function insert_medical_records($param1, $param2,..., $param30) {
// code here
}
但粗略的是,这样的代码编写容易出错并且根本不优雅。
我想到了更好的解决方案,例如创建一个参数数组并将其值传递给函数,但我不太清楚它的有效语法。
或者可能有一个更好的解决方案呢?
谢谢!
答案 0 :(得分:2)
由于php有一个软类型控件,你可以给你的函数一个输入参数。该参数将是一个数组或一个对象。
如果是数组:
function insert_medical_records($input_array) {
// Here you can use $input_array['param1'], $input_array['param2'],
}
在调用函数之前,需要填充数组,如:
$input_array['param1'] = "your param 1 value";
$input_array['param2'] = array('a' => 1, 'b' => 2);
insert_medical_records($input_array);
我还建议您检查函数输入变量的内容:
function insert_medical_records($input_array) {
if (!isset($input_array['param1'])) {
// manage your error
return;
}
// Everything is ok. Do your stuff here...
}
您应该考虑使用isset,empty或is_array,而不是array_key_exists。这取决于您的具体情况。
使用Object而不是Array的解决方案非常相似。您可以定义$input_object->param1
。
答案 1 :(得分:0)
怎么样:
class MedicalRecords {
/* code here */
}
function insert_medical_records(MedicalRecords $mr) {
/* more code here */
}
现在你可以添加逻辑来对记录中的对象本身进行验证,并更好地将代码的问题与更多逻辑线分开。