ThinkPHP源码学习 to_guid_string函数 根据PHP各种类型变量生成唯一标识号

/**
 * 根据PHP各种类型变量生成唯一标识号
 * @param mixed $mix 变量
 * @return string
 */

function to_guid_string($mix) {
    if (is_object($mix)) {
        return spl_object_hash($mix);
//spl_object_hash — 返回指定对象的hash id 
    } elseif (is_resource($mix)) {
//is_resource — 检测变量是否为资源类型 
        $mix = get_resource_type($mix) . strval($mix);
//get_resource_type — 返回资源(resource)类型 
//strval — 获取变量的字符串值
    } else {
        $mix = serialize($mix);
//serialize — 产生一个可存储的值的表示
//$name="津沙港湾"  serialize系列化 为s:12:"津沙港湾";
    }
    return md5($mix);//md5 — 计算字符串的 MD5 散列值
}
class Student{
    public $name=‘津沙港湾‘;
}
$stu=new Student();//对象
$fp = fopen("d:/wamp/counter.txt","w");//资源
$name="津沙港湾";//字符串
echo to_guid_string($stu);
echo "<br/>";
echo to_guid_string($fp);
echo "<br/>";
echo to_guid_string($name);

运行结果为:

00000000411ac22f0000000001dac5a4
7c8337ca66fc7eb79d20461b44630219
99a71c3a715645befef323c9a805f662

时间: 2024-08-27 05:18:29

ThinkPHP源码学习 to_guid_string函数 根据PHP各种类型变量生成唯一标识号的相关文章

ThinkPHP源码学习 cookie函数 设置 取值 删除

/** * Cookie 设置.获取.删除 * @param string $name cookie名称 * @param mixed $value cookie值 * @param mixed $option cookie参数 * @return mixed */ 系统内置了一个cookie函数用于支持和简化Cookie的相关操作,该函数可以完成Cookie的设置.获取.删除操作. Cookie设置 cookie('author','津沙港湾','3600'); 执行代码段 $expire =

ThinkPHP源码学习---is_ssl() 函数 判断是否SSL协议

/** * 判断是否SSL协议 * @return boolean */ function is_ssl() { if(isset($_SERVER['HTTPS']) && ('1' == $_SERVER['HTTPS'] ||     'on' == strtolower($_SERVER['HTTPS']))){         return true;     }elseif(isset($_SERVER['SERVER_PORT']) && ('443' == 

ThinkPHP源码学习 redirect函数 URL重定向

/**  * URL重定向  * @param string $url 重定向的URL地址  * @param integer $time 重定向的等待时间(秒)  * @param string $msg 重定向前的提示信息  * @return void  */  $url='http://www.baidu.com';  $time=3; function redirect($url, $time=0, $msg='') { //多行URL地址支持     $url        = st

ThinkPHP源码学习 data_to_xml函数 数据转成xml格式

/** * 数据XML编码 * @param mixed  $data 数据 * @param string $item 数字索引时的节点名称 * @param string $id   数字索引key转换为的属性名 * @return string */ function data_to_xml($data, $item='item', $id='id') {     $xml = $attr = '';     foreach ($data as $key => $val) {       

ThinkPHP源码学习 xml_encode函数 数据转成xml格式

/** * XML编码 * @param mixed $data 数据 * @param string $root 根节点名 * @param string $item 数字索引的子节点名 * @param string $attr 根节点属性 * @param string $id   数字索引子节点key转换的属性名 * @param string $encoding 数据编码 * @return string */ function xml_encode($data, $root='thi

ThinkPHP源码阅读2-----C函数配置文件详解

ThinkPHP的配置非常灵活,可自定义加载.大概看了一下,一共有这几个地方会加载配置文件,方便以后的读取 /** * 获取和设置配置参数 支持批量定义 * * @param string|array $name * 配置变量 * @param mixed $value * 配置值 * @return mixed */ function C($name = null, $value = null) { static $_config = array (); // 无参数时获取所有 if (emp

THINKPHP源码学习--------验证码类

TP3.2验证码类的理解 今天在学习中用到了THINKPHP验证码,为了了解究竟,就开始阅读TP验证码的源码. 源码位置:./ThinkPHP/Library/Think/Verify.class.php 首先分段来阅读源码 1.namespace Think; Class Verify表示Thinkphp命名空间下的Verify类 2. protected $config = array( 'seKey'    => 'ThinkPHP.CN', // 验证码加密密钥 'codeSet'  =

async源码学习 - waterfall函数的使用及原理实现

waterfall函数会连续执行数组中的函数,每次通过数组下一个函数的结果.然而,数组任务中的任意一个函数结果传递失败,那么该函数的下一个函数将不会执行,并且主回调函数立马把错误作为参数执行. 以上是我翻译的,我都不知道翻译的什么鬼. 其实该函数的作用就是: 上一个异步函数返回结果可以传给下一个异步函数,如果传递过程中,第一个参数出错了也就是真值的话,下一个回调函数将会停止调用,并且直接调用waterfall函数的第二个参数,其实也是个回调函数.并且把错误的参数传过去. 先看看官网的demo:

Hadoop源码学习笔记(1) ——第二季开始——找到Main函数及读一读Configure类

Hadoop源码学习笔记(1) ——找到Main函数及读一读Configure类 前面在第一季中,我们简单地研究了下Hadoop是什么,怎么用.在这开源的大牛作品的诱惑下,接下来我们要研究一下它是如何实现的. 提前申明,本人是一直搞.net的,对java略为生疏,所以在学习该作品时,会时不时插入对java的学习,到时也会摆一些上来,包括一下设计模式之类的.欢迎高手指正. 整个学习过程,我们主要通过eclipse来学习,之前已经讲过如何在eclipse中搭建调试环境,这里就不多述了. 在之前源码初