Doctrine orm 之间的区别;?1“;“和”&引用;

Doctrine orm 之间的区别;?1“;“和”&引用;,doctrine-orm,dql,Doctrine Orm,Dql,在DQL查询中使用?或?1有什么区别?例如 $qb->add('select', 'u') ->add('from', 'User u') ->add('where', 'u.id = ?1') //<------- ->add('orderBy', 'u.name ASC'); ->setParameter(1, 100); $qb->add('select','u') ->添加('from','User u') ->add('wh

在DQL查询中使用
?1
有什么区别?例如

$qb->add('select', 'u')
   ->add('from', 'User u')
   ->add('where', 'u.id = ?1') //<-------
   ->add('orderBy', 'u.name ASC');
   ->setParameter(1, 100);
$qb->add('select','u')
->添加('from','User u')
->add('where','u.id=?1')//add('orderBy','u.name ASC');
->设置参数(1100);

$qb->add('select','u')
->添加('from','User u')
->add('where','u.id=?')//add('orderBy','u.name ASC');
->设置参数(1100);

仅使用
将使多个参数按该顺序编制索引,而使用
?1
显式定义索引将允许您按任何顺序对参数进行编号

$qb->add('select', 'u')
   ->add('from', 'User u')
   ->add('where', $qb->expr()->orx(
       $qb->expr()->eq(    'u.id',       '?2'), // using 2 before 1 because I can
       $qb->expr()->like(  'u.nickname', '?1')
   ))
   ->add('orderBy', 'u.name ASC');
   ->setParameter(1, 'bob');  // bound to u.nickname
   ->setParameter(2, 100);    // bound to u.id

它们是否都为select语句提供相同的结果?
$qb->add('select', 'u')
   ->add('from', 'User u')
   ->add('where', $qb->expr()->orx(
       $qb->expr()->eq(    'u.id',       '?2'), // using 2 before 1 because I can
       $qb->expr()->like(  'u.nickname', '?1')
   ))
   ->add('orderBy', 'u.name ASC');
   ->setParameter(1, 'bob');  // bound to u.nickname
   ->setParameter(2, 100);    // bound to u.id