Php LINQ表达式?
有没有办法在PHP中使用LINQ表达式? 例如,在C#中,我可以执行以下操作:Php LINQ表达式?,php,linq,Php,Linq,有没有办法在PHP中使用LINQ表达式? 例如,在C#中,我可以执行以下操作: List<string> names = new List<string>() { "Francisco", "Ronald", "Araújo", "Barbosa" }; var oneName = names.Where(x => x.Equals("Ronald")).FirstOrDefault(); 有几个PHP库模仿LINQ的功能。例如:
List<string> names = new List<string>()
{
"Francisco",
"Ronald",
"Araújo",
"Barbosa"
};
var oneName = names.Where(x => x.Equals("Ronald")).FirstOrDefault();
有几个PHP库模仿LINQ的功能。例如:
$names = array("Francisco", "Ronald", "Araújo", "Barbosa");
$oneName = from('$name')->in($names)
->where('$x => $x == "Ronald"')
->firstOrDefault('$name');
或者使用PINQ,它采用与PHP 5.3+闭包不同的方法:
$oneName = \Pinq\Traversable::from($names)
->where(function ($x) { return $x == 'Ronald'; })
->first();
我不推荐PHPLinq,因为它不是你在.NET中所习惯的,即使它看起来像LINQ。原因是:
$names = array("Francisco", "Ronald", "Araújo", "Barbosa");
$oneName = from($names)->where('$x ==> $x == "Ronald"')->firstOrDefault();
*YaLinqo是我开发的。你想使用还是?我想使用LINQ。可能吗?看看这个。谢谢你的提示。我想这就是我想要的。你能为YoLinqo添加对数据库的支持吗?@Pangamma它不在YaLinqo的范围之内。YaLinqo的首要任务是转换的速度、简单性和多样性,其中两个在DB层中不能很好地发挥作用(良好的LINQ到SQL转换非常复杂,DB功能限制了转换的数量),因此设计上严格要求LINQ到对象。TimeToogo的[Pinq](TimeToogo/Pinq),另一个LINQ端口,支持数据库,但其结果是,它要复杂得多,有限得多,而且速度要慢得多。它唯一的DB提供程序是MySQL的一个演示,所以我想DB功能还没有投入生产。@Pangamma在核心部分,有两个问题。首先,编写一个生成合理SQL的提供程序非常困难。其次,PHP不提供像C#那样的表达式支持,而且这种情况不会很快发生(我希望我们至少能看到lambdas)。考虑到这一点,LINQ到DB在不久的将来不会在PHP中出现,如果有的话。你应该寻找其他的解决方案,这很公平。当您不需要大量的开销时,简化是有价值的。
$names = array("Francisco", "Ronald", "Araújo", "Barbosa");
$oneName = from($names)->where('$x ==> $x == "Ronald"')->firstOrDefault();