# uniqid

(PHP 4, PHP 5, PHP 7)

uniqid — 生成一个唯一ID

### 说明

uniqid ([ string `$prefix` = "" [, bool `$more_entropy` = false ]] ) : string

获取一个带前缀、基于当前时间微秒数的唯一ID。

Caution

本函数并不会生成安全加密的值，不应用于加密用途。若需要安全加密的值，考虑使用openssl_random_pseudo_bytes()。

Warning

此函数不保证返回值的唯一性。 由于绝大多数系统使用 NTP 或者类似服务调整系统的时间，所以系统时间经常发生变化。 此外，进程/线程可能不会返回唯一的 ID。 用 `more_entropy` 来增加唯一性的概率。

### 参数

`prefix`

  有用的参数。例如：如果在多台主机上可能在同一微秒生成唯一ID。

  `prefix`为空，则返回的字符串长度为13。`more_entropy` 为 `TRUE`，则返回的字符串长度为23。

`more_entropy`

  如果设置为 `TRUE`，uniqid() 会在返回的字符串结尾增加额外的熵（使用combined linear congruential generator）。 使得唯一ID更具唯一性。

### 返回值

返回字符串形式的唯一ID。

Warning

此函数努力创建唯一识别符，但它不保证返回值得唯一性。

### 范例

Example #1 uniqid() 例子

    <?php
    /* A uniqid, like: 4b3403665fea6 */
    printf("uniqid(): %s\r\n", uniqid());

    /* We can also prefix the uniqid, this the same as
     * doing:
     *
     * $uniqid = $prefix . uniqid();
     * $uniqid = uniqid($prefix);
     */
    printf("uniqid('php_'): %s\r\n", uniqid('php_'));

    /* We can also activate the more_entropy parameter, which is
     * required on some systems, like Cygwin. This makes uniqid()
     * produce a value like: 4b340550242239.64159797
     */
    printf("uniqid('', true): %s\r\n", uniqid('', true));
    ?>

### 注释

> Note:

> 在Cygwin环境下，为了使此函数能够工作，`more_entropy` 必须设置为 `TRUE`。