$field = array(
'field_name' => $values['field_name'],
'type' => $values['type'],
'translatable' => $values['translatable'],
);
field_name自己命名 ,type自己选择drupal核心事先定义好的类型包括
首选根据$field创建field用field_create_field($field)创建字段。检测field_name是否为空,是否包含不允许字符,是否长于32个字,然后使用field_read_field($field['field_name'],array('include_inactive' => true));保证字段名不存在(查询条件为字段激活且字段未被删除的是否有此字段名如果有表示字段已存在)如果确定字段名唯一,如果存在字段则读取字段详细信息(包括hook_field_schema字段模式,以及hook_read_field)此方法应该是考虑通用性我觉得这个方法效率太低了应该把判断字段是否存在单独写个方法,不过考虑到添加字段都是在设计网站的时候去判断这个方法执行频率应该极低。