小编FtD*_*Xw6的帖子

如何在RequireJS中使用Bing Maps API?

我如何将Bing Maps API与最新版本的RequireJS一起使用?远程脚本URL是:

http://ecn.dev.virtualearth.net/mapcontrol/mapcontrol.ashx?v=7.0

我会加一个像这样的垫片吗?

require.config({
    /* ... */
    paths: {
        'Microsoft.Maps': 'http://ecn.dev.virtualearth.net/mapcontrol/mapcontrol.ashx?v=7.0'
    },
    shim: {
        'Microsoft.Maps': {
            deps: [],
            exports: 'Microsoft'
        }
    }
});
Run Code Online (Sandbox Code Playgroud)

然后在我的模块中使用它:

define(['Microsoft.Maps'], function(Microsoft) {
    /* ... */
});
Run Code Online (Sandbox Code Playgroud)

我想我的问题更多是关于如何使用RequireJS一般使用命名空间代码.文档没有涉及我能找到的任何例子.

amd bing-maps requirejs

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

PHP strtr 与 str_replace 基准测试

我很好奇进行字符串转换的最高效的方法是什么。给定一个输入字符串和一组翻译,一般来说哪种方法最有效?我目前使用strtr(),但已经使用str_replace()数组等测试了各种循环方法。该strtr()方法在我的系统上进行了最快的基准测试,具体取决于翻译,但我很好奇是否有我还没有想到的更快的方法。

如果相关的话,我的特定用例涉及将 2 字节字符串转换为终端的 ANSI 颜色序列。例子:

// In practice, the number of translations is much greater than one...
$out = strtr("|rThis should be red", array('|r' => "\033[31m"));
Run Code Online (Sandbox Code Playgroud)

php string performance transformation ansi

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

PHP数组相交(有点)

给出两个数组:

$foo = array('a', 'b', 'c');
$bar = array('a' => 1, 'b' => 2, 'c' => 3, 'd' => 4, 'e' => 5);
Run Code Online (Sandbox Code Playgroud)

是否有内置的PHP函数来生成以下结果数组?

$result = array('a' => 1, 'b' => 2, 'c' => 3);
Run Code Online (Sandbox Code Playgroud)

我已经浏览了php.net上的数组函数列表,但似乎无法找到我正在寻找的内容.我知道如果需要我该怎么做,但我认为这可能是一个普遍的问题,可能有一个内置的功能,它做了它,并不想重新发明轮子.

php arrays

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

PHP:NULLish值检查

当检查超全局类似$_GET$_POST存在特定键的值时,是否有一种方法以更简洁的方式包含以下功能?

if (isset($_POST['foo']) && $_POST['foo'] !== '') {
    // ...
}
Run Code Online (Sandbox Code Playgroud)

isset()自身函数返回TRUE即使值是一个空字符串'',所以我不能使用.

使用just $_POST['foo'] !== ''将自己正常工作,但它会发出一个E_NOTICE未定义的索引,这是不可取的.

empty()函数返回TRUE的值"0",这是一个有效的价值,所以我不能使用的,无论是.

我错过了一些明显的东西,或者这真的是最好/唯一的方法吗?

php null

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

如何保证子查询中的原子SQL插入?

给定一个简化的表结构,如下所示:

 CREATE TABLE t1 (
        id INT,
        num INT,
        CONSTRAINT t1_pk
        PRIMARY KEY (id),
        CONSTRAINT t1_uk
        UNIQUE (id, num)
    )
Run Code Online (Sandbox Code Playgroud)

我可以使用这样的子查询来插入记录而不会导致竞争条件吗?

INSERT INTO t1 (
    id,
    num
) VALUES (
    1,
    (
        SELECT MAX(num) + 1
        FROM   t1
    )
)
Run Code Online (Sandbox Code Playgroud)

或者子查询不是原子的?我担心同时INSERT获取相同的值num然后导致唯一的约束违规.

sql oracle race-condition

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

如何使用PHPUnit测试集合类

我有一个类似于此的类(为简洁起见,删除了一些逻辑):

class FooCollection {
    protected $_foos;

    public function __construct() {
        $this->_foos = new SplObjectStorage();
    }

    public function addFoo(FooInterface $foo) {
        $this->_foos->attach($foo);
    }

    public function removeFoo(FooInterface $foo) {
        $this->_foos->detach($foo);
    }
}
Run Code Online (Sandbox Code Playgroud)

我想用PHPUnit 来测试addFoo()removeFoo()方法,我想知道最好的策略是什么呢?据我所知,我只有几个选择:

  1. 添加方法hasFoo(FooInterface $foo)并在添加后检查此方法.
  2. 添加一个getFoos()直接返回SplObjectStorage实例的方法,并$foo在添加后检查是否在其中.
  3. 尝试removeFoo($foo)之后addFoo($foo)并检查异常.
  4. 制作$_foos公共财产并在添加后直接检查(坏,坏,坏......).

选项#1和#2正在改变公共接口仅用于测试目的,我不确定我对此的看法.它们似乎是非常通用的,有用的方法,但在我的特定情况下,我从来不需要检查Foo集合中特定实例的存在,也不需要检索所有实例,所以它真的会只是臃肿.此外,似乎如果我在一次测试中测试界面的多个部分,我不是真的在测试一个"单位",但这或多或少只是一个哲学挂断.

选项#3对我来说似乎很尴尬.

选项#4是一个非常糟糕的主意,我甚至不应该列出它,因为即使在这里建议,我也不会这样做.

php phpunit

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

CSS - 可以重排列中的复选框吗?

当容器的高度发生变化时,是否可以将动态/未知数量的复选框水平回流到列中?这是我的意思的简单图表:

高度= 180px(20px*9复选框):

[ ] Checkbox 1
[ ] Checkbox 2
[ ] Checkbox 3
[ ] Checkbox 4
[ ] Checkbox 5
[ ] Checkbox 6
[ ] Checkbox 7
[ ] Checkbox 8
[ ] Checkbox 9
Run Code Online (Sandbox Code Playgroud)

高度= 140px(20px*7复选框):

[ ] Checkbox 1    [ ] Checkbox 8
[ ] Checkbox 2    [ ] Checkbox 9
[ ] Checkbox 3
[ ] Checkbox 4
[ ] Checkbox 5
[ ] Checkbox 6
[ ] Checkbox 7
Run Code Online (Sandbox Code Playgroud)

高度= 100px(20px*5个复选框):

[ …
Run Code Online (Sandbox Code Playgroud)

html css

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

PHP:__isset() 和 __get() 之间的关系

我最近与另一位开发人员就 PHP__isset()__get()魔术方法之间的关系进行了简短的讨论。它是由我们拥有的一个类带来的,该类通过该__get()方法延迟加载其他对象(延迟加载意味着该属性在第一次访问之前不存在,此时对象被实例化并返回)。__isset()但是,对于尚未加载的属性应该返回什么,我们有不同的意见。该属性在技术上不存在(它不是set,或者至少,它是 set 但当前NULL),但是对它的调用在技术上也会成功(除非有任何异常)并返回一个非NULL值。

所以,我的问题是,在这种情况下,应该__isset()只是一个指示是否__get()会成功的同一个论点(TRUE如果__get()会成功,返回一个非NULL值)。或者,它是否应该在技术上表现得更好,并返回FALSE,因为数据尚不存在(即使第一次访问时它存在)?

一个简单的例子:

class Foo {
    protected $data;

    public function __get($prop) {
        if ($prop == 'bar') {
            $this->data['bar'] = new Bar;
            return $this->data['bar'];
        }
    }

    public function __isset($prop) {
        if ($prop == 'bar') {
            // What goes here?
            // return isset($this->data[$prop]) would mean
            // that the first call to …
Run Code Online (Sandbox Code Playgroud)

php magic-methods

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

使用文本编辑器展开缩小的css文件

我接手的网站目前设置为使用.mincss文件的版本..min对用户来说很棒,但对于测试和开发来说非常糟糕.有没有办法使用sublime文本或其他文本编辑器,我可以将文本扩展为标准格式和间距?

css notepad++ minify sublimetext2

0
推荐指数
1
解决办法
5276
查看次数