©
This document uses PHP Chinese website manual Release
(PECL mongo >= 0.8.0)
MongoId::__construct — 创建一个新的id
$id
= NULL
] )
id
用于 id 的一个字符串。必须为24个十六进制的字符。
返回一个新的 id。
版本 | 说明 |
---|---|
1.4.0 | 传入无效字符将抛出异常 |
Example #1 MongoId::__construct() 例子
这个例子展示了如何创建一个新的 id。 这很少用到,因为在保存到数据库之前,驱动会为数组自动添加一个id。
<?php
$id1 = new MongoId ();
echo " $id1 \n" ;
$id2 = new MongoId ();
echo " $id2 \n" ;
?>
以上例程的输出类似于:
49a7011a05c677b9a916612a 49a702d5450046d3d515d10d
Example #2 参数的例子
这个例子展示了如何使用 string 的参数来初始化一个指定值的 MongoId。
<?php
$id1 = new MongoId ();
// 从 $id1 创建一个新的 MongoId
$id2 = new MongoId ( " $id1 " );
// 显示 $id1 和 $id2 具有相同的十六进制值
var_dump ( $id1 == $id2 );
?>
以上例程的输出类似于:
bool(true)
[#1] georgedot nospam gmail guess what com [2013-06-14 09:51:17]
Due to Recent changes.
* [PHP-554] - MongoId should not get constructed when passing in an invalid ID.
Constructor will throw an exception when passing invalid ID.
<?php
$_id = new MongoId(); //Generates new ID
$_id = new MongoId(null); //Generates new ID
$_id = new MongoId("invalid id"); //throws MongoException
?>
<?php
//Revert to old behaviour
$_id = "invalid id";
try {
$_id = new MongoId($_id);
} catch (MongoException $ex) {
$_id = new MongoId();
}
?>
<?php
//Nifty hack
class SafeMongoId extends MongoId {
public function __construct($id=null) {
try {
parent::__construct($id);
} catch (MongoException $ex) {
parent::__construct(null);
}
}
}
?>