小编Jak*_*e N的帖子

foreach的性能,带有lambda的array_map和带有静态函数的array_map

这三种方法之间的性能差异(如果有的话)是什么,都用于将数组转换为另一个数组?

  1. 运用 foreach
  2. 使用array_maplambda/closure函数
  3. 使用array_map'静态'功能/方法
  4. 还有其他方法吗?

为了使自己清楚,让我们看看这些例子,都做同样的事情 - 将数字数组乘以10:

$numbers = range(0, 1000);
Run Code Online (Sandbox Code Playgroud)

的foreach

$result = array();
foreach ($numbers as $number) {
    $result[] = $number * 10;
}
return $result;
Run Code Online (Sandbox Code Playgroud)

用lambda映射

return array_map(function($number) {
    return $number * 10;
}, $numbers);
Run Code Online (Sandbox Code Playgroud)

使用'static'函数映射,作为字符串引用传递

function tenTimes($number) {
    return $number * 10;
}
return array_map('tenTimes', $numbers);
Run Code Online (Sandbox Code Playgroud)

还有其他方法吗?我将很高兴听到上述案例之间的所有差异,以及为什么应该使用其他人而不是其他人的任何输入.

php performance foreach lambda array-map

131
推荐指数
4
解决办法
7万
查看次数

学说发现'不等于'

我该怎么办

WHERE id != 1
Run Code Online (Sandbox Code Playgroud)

在学说?

到目前为止我有这个

$this->getDoctrine()->getRepository('MyBundle:Image')->findById(1);
Run Code Online (Sandbox Code Playgroud)

但我怎么做"不等于"?

这可能是愚蠢的,但我找不到任何参考?

谢谢

doctrine-orm

40
推荐指数
5
解决办法
9万
查看次数

最佳实践,重写__construct()与提供init()方法

当您继承对象并希望扩展初始化代码时,有两种方法.覆盖__construct(),并实现超类构造函数调用的初始化方法.

方法1:

class foo
{
    public function __construct ($arg1, $arg2, $arg3)
    {
        // Do initialization
    }
}

class bar extends foo
{
    public function __construct ($arg1, $arg2, $arg3)
    {
        parent::__construct ($arg1, $arg2, $arg3);
        // Do subclass initialization
    }
}
Run Code Online (Sandbox Code Playgroud)

方法2

class foo
{
    public function init ()
    {
        // Dummy function
    }

    public function __construct ($arg1, $arg2, $arg3)
    {
        // Do subclass defined initialization
        $this -> init ();
        // Do other initialization
    }
}

class bar extends foo
{
    public …
Run Code Online (Sandbox Code Playgroud)

php oop subclassing

27
推荐指数
2
解决办法
2万
查看次数

在PHP中添加Expire Headers无法使其正常工作

我安装了Yslow附加组件

替代文字

当我在Yslow中检查我的应用程序时,我得到了Add Expires标题,我不知道

替代文字

我搜索了SO中的相关问题,Google也发现这种方法合适

<?
    header("Expires:".gmdate('D, d M Y H:i:s \G\M\T', time() + 3600));
    header("Cache-Control: no-cache");
    header("Pragma: no-cache");
    ob_start();
    session_cache_limiter('public');
    session_start();
?>
<html>
Run Code Online (Sandbox Code Playgroud)

但它仍然表明我一样

因为我是新手,我对.htaccess了解不多

请帮助我提高应用程序性能

提前致谢

Wazzy

php performance .htaccess yslow

16
推荐指数
1
解决办法
5154
查看次数

使用QueryBuilder的多个WHERE

使用以下内容时,只有最后一个where添加到我的查询中;

$qb = $this->getEntityManager()->createQueryBuilder();

$qb->select(array('qi'))
    ->from('Table:Qi', 'qi')
    ->where("qi.content = " . $content->getId())
    ->where("qi.queue = " . $child->getQueue()->getId());
Run Code Online (Sandbox Code Playgroud)

我必须这样做才能注意到这两点

$qb->select(array('qi'))
    ->from('Table:Qi', 'qi')
    ->where("qi.content = " . $content->getId() . 
                 " AND qi.queue = " . $child->getQueue()->getId());
Run Code Online (Sandbox Code Playgroud)

这似乎不对?如何在多次where通话时使用第一种方法?

query-builder symfony doctrine-orm

16
推荐指数
1
解决办法
1万
查看次数

将数据传递给jQuery click()函数

我有一个简单的跨度

<span class="action removeAction">Remove</span>
Run Code Online (Sandbox Code Playgroud)

此跨度位于表格内,每行都有一个删除范围.

然后,当点击该跨度时,我使用AJAX调用URL.AJAX事件需要知道该行的对象的ID吗?将该ID放入点击功能的最佳方法是什么?

我以为我可以做这样的事情

<span class="action removeAction" id="1">Remove</span>
Run Code Online (Sandbox Code Playgroud)

但ID不应该以数字开头?对?然后我想我能做到

<span class="action removeAction" id="my1">Remove</span>
Run Code Online (Sandbox Code Playgroud)

然后从ID中删除"我的"部分,但这似乎只是Yuk!

下面是我的点击事件和我的AJAX事件.

<script type="text/javascript" language="text/javascript">

$(document).ready(function()
{

    $(".removeAction").click(function()
    {
        //AJAX here that needs to know the ID            
    }
});

</script>
Run Code Online (Sandbox Code Playgroud)

我相信有一个很好的方法吗?

注意:我不是在寻找

$(this).attr("id");
Run Code Online (Sandbox Code Playgroud)

我希望能够传递多条信息

谢谢.杰克.

parameters ajax jquery function

14
推荐指数
1
解决办法
2万
查看次数

使用colspan时双点边框

我有一个看似简单的问题,但搜索网没有产生任何结果.

我有一张桌子

<table>
    <tr>
        <td colspan="3">
            <img src="something.png" />
        </td>
    </tr>
    <tr>
        <td>
            Hello
        </td>
        <td>
            World
        </td>
        <td>
            !
        </td>
    </tr>
</table>
Run Code Online (Sandbox Code Playgroud)

<tr>所有元素均具有border-top: dotted 1px black,这工作正常远离中央<td>的第二元件<tr>.

此元素具有双边框,因此显示为实线,从而colspan解决了问题.

我已经尝试过应用border-collapse: collapse到表中这没有用,我尝试&nbsp;以第一个<td>而不是图像的形式添加内容,但这也没有用.

任何人的想法?

html css html-table border

13
推荐指数
1
解决办法
8911
查看次数

使用Graph API从公共Facebook页面获取墙上馈送 - 这真的很复杂吗?

我已经开始阅读向非Facebook用户展示Facebook帖子,这有一些用处,但我不敢相信从Facebook获取公共信息很难.

我想要一个feed的页面是公共的,你不需要登录就可以了.

我是否正确地假设我需要access_token来获取此信息,尝试访问该URL而不会导致OAuth错误.

所以流程应该是这样的(大规模,过于复杂):

  1. 使用用户进行身份验证(如果用户不在Facebook上,该怎么办?)
  2. 一些复杂的OAuth废话 - 只是为了阅读Feed,我甚至不想要一个像按钮或帖子到墙的功能
  3. 使用PHP请求通过用户的access_token获取正确的URL
  4. 渲染Feed

假设用户不在Facebook上,您做什么,使用通用应用程序获取Feed?

  1. 使用我的通用应用程序ID和密码将验证请求硬编码到Facebook
  2. 一些复杂的OAuth废话
  3. 使用应用程序的access_token将PHP请求获取到正确的URL
  4. 渲染Feed
  5. 哦不,auth已经过期,重新验证并捕获这个新的access_token,以便在将来的请求中使用.

这似乎非常复杂,除了Facebook想知道正在发生的一切之外,使用XPath做一个cURL并从公共URL中删除内容会更容易.

对此的任何帮助都会很棒.

谢谢,杰克

编辑

显示此内容的编辑不完全相同.

我有这个使用access_token,但现在它失败了,令牌已经过期,我不能再使用它从公共墙获取信息.

我尝试使用其他帖子中提到的方法来延长此令牌的到期日期,但这不起作用,并且过期没有延长 - 我们现在在这里,带有无效的令牌而且没有更进一步.

似乎必须批准OAuth请求的手动过程意味着无法以编程方式获取公共页面的提要.

php facebook facebook-graph-api facebook-access-token

13
推荐指数
1
解决办法
2万
查看次数

如何从表中加入COUNT,然后使用另一个JOIN实现该COUNT

我有三张桌子

岗位

ID  Name
1   'Something'
2   'Something else'
3   'One more'
Run Code Online (Sandbox Code Playgroud)

评论

ID  PostId  ProfileID  Comment
1   1       1          'Hi my name is' 
2   2       2          'I like cakes'
3   3       3          'I hate cakes'
Run Code Online (Sandbox Code Playgroud)

轮廓

ID  Approved
1   1          
2   0          
3   1          
Run Code Online (Sandbox Code Playgroud)

我想计算批评评论的个人资料的评论

我可以从Post中选择数据,然后从Comment fine中加入一个计数.但是这个计数应该取决于配置文件是否被批准.

我期待的结果是

CommentCount

PostId  Count
1       1
2       0
3       1
Run Code Online (Sandbox Code Playgroud)

sql join count

11
推荐指数
2
解决办法
4万
查看次数

Google Analytics,从API获取注释

是否有任何方法可以通过API从Google Analytics获取注释.如果可能或没有,很多搜索都没有给出任何文档或可靠答案.

有没有人这样做,或者知道我需要用来获取注释的过滤器/维度?

谢谢杰克

google-analytics google-analytics-api

11
推荐指数
1
解决办法
2481
查看次数