/**
* 查询指定的字段是否存在表中
* @param type $field 字段名称
* @return void
* @access protected
*/
protected function issetField($field){
$fields=$this->model->getDbFields();
return array_search($field,$fields);
}
从3.1版本开始,模型的字段缓存文件名全部转换成小写,避免重复生成。
可以通过设置DB_FIELDS_CACHE 参数来关闭字段自动缓存,如果在开发的时候经常变动数据库的结构,而不希望进行数据表的字段缓存,可以在项目配置文件中增加如下配置:
如果需要显式获取当前数据表的字段信息,可以使用模型类的getDbFields方法来获取当前数据对象的全部字段信息,例如:
如果不希望依赖字段缓存或者想提高性能,也可以在模型类里面手动定义数据表字段的名称,可以避免IO加载的效率开销,在模型类里面添加fields属性即可,定义格式如下:
- 'DB_FIELDS_CACHE'=>false
如果需要显式获取当前数据表的字段信息,可以使用模型类的getDbFields方法来获取当前数据对象的全部字段信息,例如:
- $fields = $User->getDbFields();
如果不希望依赖字段缓存或者想提高性能,也可以在模型类里面手动定义数据表字段的名称,可以避免IO加载的效率开销,在模型类里面添加fields属性即可,定义格式如下:
- <?php
- class UserModel extends Model{
- protected $fields = array(
- 'id', 'username', 'email', 'age', '_pk' => 'id', '_autoinc' => true
- );
- }
array_search()
函数在数组中搜索某个键值,并返回对应的键名。
详细说明
array_search() 函数与 in_array() 一样,在数组中查找一个键值。如果找到了该值,匹配元素的键名会被返回。如果没找到,则返回 false。
在 PHP 4.2.0 之前,函数在失败时返回 null 而不是 false。
如果第三个参数 strict 被指定为 true,则只有在数据类型和值都一致时才返回相应元素的键名。
语法
array_search(value,array,strict)
参数 | 描述 |
---|---|
value | 必需。规定需要搜素的键值。 |
array | 必需。规定被搜索的数组。 |
strict | 可选。如果该参数被设置为 TRUE,则函数在数组中搜索数据类型和值都一致的元素。可能的值:
如果设置为 true,则在数组中检查给定值的类型,数字 5 和字符串 5 是不同的(参见实例 2)。 |
技术细节
返回值: | 如果在数组中找到指定的键值,则返回对应的键名,否则返回 FALSE。 如果在数组中找到键值超过一次,则返回第一次找到的键值所匹配的键名。 |
PHP 版本: | 4.0.5+ |
更新日志: | 如果向函数传递无效的参数,函数返回 NULL(这个适用于自 PHP 5.3.0 起的所有的 PHP 函数)。 自 PHP 4.2.0 起,如果搜索失败,该函数返回 FALSE,而不是 NULL。 |
更多实例
在数组中搜索键值 5,并返回它的键名(注意 ""):
<?php
$a=array("a"=>"5","b"=>5,"c"=>"5");
echo array_search(5,$a,true)
;
?>
输出: b