小编mor*_*les的帖子

使用array_map调用数组中对象的方法?

假设我有简单的类:

class MyClass {
  private $_prop;
  public function getProp() {return $this->_prop;}
  [....]
}
Run Code Online (Sandbox Code Playgroud)

现在我想要做的不是在范围内的MyClasssom是从MyClass($objs)的对象数组中获取$ _prop的数组.这当然可以用这样的代码完成:

$props = array();
foreach ($objs as $obj) {
    $props[] = $obj->getProp();
}
Run Code Online (Sandbox Code Playgroud)

然而,这需要引用一些行,特别是当以这种方式格式化时(我必须使用这种格式).所以问题是:如果可以使用array_map来做到这一点?一种方法是使用create function,但我真的不喜欢它在php中(php中的lambdas至少很尴尬,如果我理解它的性能就像evaled代码那样,但性能不在这里).我已经厌倦了搜索,但没有找到任何定义性的答案.但我有点觉得这是不可能的.我尝试了类似的东西array_map(array('MyClass', 'getProp'), $objs),但这不起作用,因为方法不是静态的.

编辑:我正在使用php 5.3.

php arrays methods object array-map

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

缓冲区切换后,Vim光标跳转到行的开头

当我切换缓冲区然后返回它(基本上当我回到之前打开的任何缓冲区时),光标被放置在行的开头,丢失前一行的位置.这非常烦人.

vim

31
推荐指数
1
解决办法
2114
查看次数

如何避免使用malloc?

随着最近的噪声C得到,我读到有一些方法可以最大限度地减少C中malloc的使用,这是一个非常好的做法.我怎么也不知道这种做法何时,如何或如何做好.所以我的问题是,也许一些经验丰富的C程序员可以提供一些例子,其中一个人可以(或应该)写一些没有malloc的东西,但对于新手C程序员来说真是不明显的方式(因此说新手只会使用malloc) ?也许你有一些经验可以将malloc分解成其他东西.

PS我读到的一些帖子引用了Quake 3源代码以及它如何避免使用malloc,所以如果有人知道这一点,知道在那里做了什么会很有趣,因为至少知道我想避免挖掘地震代码漫无目的.(因为如果他们避免使用malloc搜索malloc,我认为不会给出太多结果,而且代码库很可能不像单个示例那样简单)

c malloc

18
推荐指数
2
解决办法
4968
查看次数

VIM隐藏(不折叠!)线

有没有办法完全隐藏某些线条?我不想折叠,我根本不可见.示例:我用php编程; 函数和类变量具有phpdocs,我恨什么也没有多大的垂直空间的线条,但/***/可以采取.因此,我不想展示它们(很可能还有其他一些东西).虽然我怀疑这是可能的......

编辑:请不要发布全局命令; 我认识他们,他们不做我想做的事.你可以打印我想要的东西.但我想要在编辑区隐藏线条.

vim

16
推荐指数
2
解决办法
5306
查看次数

shell/filesystem中的非阻塞/异步fifo /命名管道?

有没有办法在shell中创建非阻塞/异步命名管道或类似的东西?所以程序可以在其中放置行,这些行将保留在ram中,并且当某个程序可以从管道读取一些行时,同时留下它没有在fifo中读取的内容?程序也很可能同时写入和读取这个fifo.起初我可能这可能是使用文件来完成的,但是在搜索了一下web之后,似乎没有什么好处可以来自同时读取和写入文件的事实.命名管道几乎可以工作,只有两个问题:首先,如果在另一端没有人阻止读/写,第二,即使我让写入被阻止并设置两个进程写入管道而没有人正在读取,通过尝试为每个进程写一行,然后尝试head -n 1 <fifo>我只需要一行,但两个写入进程终止,第二行丢失.有什么建议?

编辑:也许一些中间程序可以用来帮助解决这个问题,就像作家和读者之间的中介一样?

linux shell pipe nonblocking fifo

10
推荐指数
1
解决办法
6036
查看次数

什么在吃我的记忆?(SAW,JS mem使用版)

所以,我听说你最近可以用JS做所有花哨的实时游戏.而且我不是初学者,所以我应该尝试一下.用一些碰撞检测写了一些微(不完整)物理引擎,都很甜.虽然有点滞后,但预计GC会中断.所以试图最小化任何分配,直到我无法看到任何应该在游戏循环中分配内存的东西.没有分配=>没有清理我.但这是我得到的: 在此输入图像描述

现在,这根本不是很整洁.所以我尝试以各种方式从游戏循环中删除我的东西.还是SAW.所以,我没有向您展示生成此代码的完整代码:

<html><body><script>
    function draw() { console.log(1); }
    ;(function () {
        function main(tFrame) { draw(); window.requestAnimationFrame( main ); }
        main();
    })();
</script></body></html>
Run Code Online (Sandbox Code Playgroud)

惊人?那么这使用requestAnimationFrame,因为它似乎应该用于平滑性能.起初我尝试设置间隔如下:

<html><body><script>
    function draw() { console.log(1); }
    window.setInterval(draw, 0);
</script></body></html>
Run Code Online (Sandbox Code Playgroud)

完全一样!

这似乎完全不可接受,但我不知道如何阻止这种SAW.我看了很多关于调试内存和东西的事情,那时我虽然问题出现在我的绘图和更新功能中.但这些到片段,基本上没什么,但它们产生了记忆模式.也许这是我的浏览器?或者它是不可避免的,JS无法实时使用?我想相信网络上的某些人知道我不知道的事情,因为很多人都对JS有奇迹.我在这些片段中做错了什么?

编辑:顺便删除控制台日志没有任何改变,万一有人认为这是问题.

javascript memory garbage-collection

9
推荐指数
1
解决办法
235
查看次数

这样的网站开发设置/实践是否适合工作场所?

我在网络开发公司工作(现在已经半年了),这是我的第一个工作场所.但是我们做的一件事让我感到很烦恼.所以我想从更有经验的人那里获得意见.我不确定这是否是最好的地方,但我希望这个问题的答案也可能对其他人有用而且有趣.

我的主要和最可能只是对工作的不满来自于我们承诺生活系统(我们有一个运行在php和mysql上的门户网站)的事实,即我提交代码并且更改立即在线可见.对于小的或快速可检测的错误来说,这没什么大不了的.但是当一些可怕的错误进入时,它是一个大问题,即在某些地方错误地生成链接,并且你可以通过两个不同的网址(点击页面排名......)到达某个页面,很容易错过这些东西几天.(或者是吗?也许我只是不够小心?)但我真的尝试在提交之前检查所有内容,我们还使用phpunit和selenium(测试是由编写代码的同一个人编写的,用于测试)(尽管测试覆盖率可能更严格).

所以我的问题是:在进行Web开发时直接提交到在线系统是否常见?

language-agnostic

3
推荐指数
1
解决办法
182
查看次数

Vim编辑*diff文件*,自动更新diff范围

   假设我在提交之前生成了我的项目的差异,假设使用svn.对项目中的所有文件使用一个diff是一种非常好的方法,可以在提交之前查看更改.但是,有时我希望在不重新打开每个文件的情况下编辑这些更改,只需编辑差异并重新应用它.所以我已经制作了这样的关键地图(我已经设置了svn diff以使用具有相当数量的周围行的统一格式):

map scde :w! tmpdiff<cr>:!svn revert -R .<cr>:!patch -p0 <tmpdiff<cr>
Run Code Online (Sandbox Code Playgroud)

   它有效,但只是部分; 您可以编辑添加的行,但如果您将行标记为已删除或想要添加另一行,则会遇到一些麻烦,因为指定的diff范围与diff中存在的实际文本不匹配.可以更新它们以进行简单的更改,例如添加一行,但是如果您进行更复杂的更改,它会很繁琐且很快变得复杂.有没有办法编辑差异,以便范围自动更新?我发现emacs有一些diff模式(但我还没试过),但是我无法使用vim找到解决方案.Maye有人可以提出一些建议吗?

vim diff

3
推荐指数
1
解决办法
804
查看次数

C宏的创造性/有趣用途; metaprograming

我一直在寻找有趣且优选有用的C宏/定义示例,它们比定义consts或min/max函数更广泛.我的理解是,宏应该允许某种程度的元编程(尽管我并不完全确定),但是搜索未能揭示太多,因此非常感谢使用宏进行元编程的示例,或解释为什么它不能工作.总的来说,我对任何"酷"的宏用途感兴趣.

PS我明白这个问题很快就会"没有建设性和关闭性",但我认为它至少可以成为一个有趣的社区维基问题.

编辑:我对C++,任何东西都不感兴趣.

c macros metaprogramming c-preprocessor

3
推荐指数
1
解决办法
437
查看次数

MySQL:从昏迷分离列表/列表中选择表格?"选择一个FROM(1,2,3)"

有可能做这样的事情(显然这种语法不起作用):

SELECT a FROM (1, 2, 3)
Run Code Online (Sandbox Code Playgroud)

得到这个:

| a |
+---+
| 1 |
| 2 |
| 3 |
Run Code Online (Sandbox Code Playgroud)

那就是我想从昏迷分隔列表中创建行,而不使用任何表,或者至少不在db中创建表(也许这可以使用像临时表这样的东西?).

也许有可能在不使用select的情况下获取给定值的列,即使用其他一些sql语句?如果在MySQL中不可能,但在某些其他SQL中可能,那么知道它仍然会很有趣.

mysql sql select

3
推荐指数
1
解决办法
1972
查看次数