当前位置: 首页>>代码示例>>PHP>>正文


PHP Closure::compare方法代码示例

本文整理汇总了PHP中Closure::compare方法的典型用法代码示例。如果您正苦于以下问题:PHP Closure::compare方法的具体用法?PHP Closure::compare怎么用?PHP Closure::compare使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Closure的用法示例。


在下文中一共展示了Closure::compare方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。

示例1: __remove

 /**
  * In case of @OneToMany or @ManyToMany or @ManyToOne, this is a general function
  * for removing a record from a collection
  *
  * @param $name
  * @param Model $model
  * @param \Closure|ComparatorInterface|null $comparator
  * @throws \Athem\Exception\InvalidArgument
  * @throws \Exception
  * @return $this
  */
 protected function __remove($name, Model $model, $comparator = null)
 {
     if (!$this->{$name} instanceof Collection) {
         throw new \Exception(sprintf('Invalid call of __remove function on property \'%s\' of class/type %s. ' . 'Property type must be Doctrine\\Common\\Collections\\Collection or extended.', $name, is_object($this->{$name}) ? get_class($this->{$name}) : gettype($this->{$name})));
     }
     switch (true) {
         case $comparator instanceof ComparatorInterface:
             $this->{$name} = $this->{$name}->filter(function ($m) use($model, $comparator) {
                 return $comparator->compare($m, $model) === 0;
             });
             break;
         case $comparator instanceof \Closure:
             $this->{$name} = $this->{$name}->filter(function ($m) use($model, $comparator) {
                 return $comparator($m, $model);
             });
             break;
         case null === $comparator:
             $this->{$name} = $this->{$name}->filter(function ($m) use($model) {
                 return $m->getArrayCopy() != $model->getArrayCopy();
             });
             break;
         default:
             throw new \Athem\Exception\InvalidArgument(sprintf('Invalid comparator. Must be of classes: \\Closure or \\Athem\\Stdlib\\ComparatorInterface, but %s found.', is_object($comparator) ? get_class($comparator) : gettype($comparator)));
     }
     return $this;
 }
开发者ID:athemcms,项目名称:netis,代码行数:37,代码来源:Associated.php


注:本文中的Closure::compare方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。