文字

MongoId::__construct

(PECL mongo >= 0.8.0)

MongoId::__construct创建一个新的id

说明

public MongoId::__construct ([ string $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)

参见

  • MongoId::__toString() - 返回该 id 十六进制的表示形式
  • MongoId::isvalid() - Check if a value is a valid ObjectId

用户评论:

[#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);
        }

    }
}
?>

上一篇: 下一篇: