Drupal探索:drupal_static函数
来源:互联网 发布:u3d 调用java 编辑:程序博客网 时间:2024/05/06 09:49
drupal函数之 — drupal_static
drupal定义了一个drupal_static函数,其它函数的static变量都存放在一个数组中,然后对drupal应用到的所有static进行统一管理,比如赋值,重置,删除等。我觉得,这是一个好办法。
<?
function &drupal_static($name, $default_value = NULL, $reset = FALSE) {
static $data = array(), $default = array();
if (!isset($name)) {
foreach ($default as $name => $value) {
$data[$name] = $value;
}
return $data;
}
if ($reset) {
if (array_key_exists($name, $default)) {
$data[$name] = $default[$name];
}
else {
return $data;
}
}
elseif (!array_key_exists($name, $data)) {
$default[$name] = $data[$name] = $default_value;
}
return $data[$name];
}
function ip_address() {
$ip_address = &drupal_static(__FUNCTION__);
if (!isset($ip_address)) {
$ip_address = $_SERVER['REMOTE_ADDR'];
if (variable_get('reverse_proxy', 0)) {
if (array_key_exists('HTTP_X_FORWARDED_FOR', $_SERVER)) {
$reverse_proxy_addresses = variable_get('reverse_proxy_addresses', array());
if (!empty($reverse_proxy_addresses) &&
in_array($ip_address, $reverse_proxy_addresses, TRUE)
) {
$ip_address_parts = explode(',', $_SERVER['HTTP_X_FORWARDED_FOR']);
$ip_address = trim(array_pop($ip_address_parts));
}
}
if (array_key_exists('HTTP_X_CLUSTER_CLIENT_IP', $_SERVER)) {
$ip_address = $_SERVER['HTTP_X_CLUSTER_CLIENT_IP'];
}
}
}
return $ip_address;
}
//在drupal中很多这样的应用方式,将其它函数的static变量都存放到一个地方,即drupal_static的data中,然后再统一管理,比如重置等等。 ?>
0 0
- Drupal探索:drupal_static函数
- Drupal7之drupal_static函数用法解析
- drupal常用函数
- drupal 页面跳转函数
- drupal核心函数
- drupal
- drupal
- drupal
- Drupal
- Drupal
- drupal
- 【Drupal】一些常用的主题函数备忘
- drupal函数 node_get_types的详细…
- drupal函数hook_nodeapi的一次深入…
- drupal函数hook_nodeapi的一次深入…
- Drupal钩子实现函数发现机制
- drupal主题化常用函数集锦
- 构造函数探索
- DHTMLX Tree怎么限制选中节点的数量
- 拼接字符串
- WEB[0]——URL
- 【Cocos2d-HTML5游戏引擎学习笔记(12)】Schedule定时器
- ubantu 13.1 下Hadoop 2.4.1安装,源码编译并导入Eclipse
- Drupal探索:drupal_static函数
- 启动2个tomcat需要修改的端口
- sizeof举例,这回全了
- 笔记:C++
- Intent使用意图(三)
- Android Viewpage禁止滑动
- COJ1290 Random Integers 概率期望DP
- error D8016: “/ZI”和“/GL”命令行选项不兼容
- JVM Internal