小编pdc*_*pdc的帖子

PHP相当于Perl的'use strict'(要求变量在使用前初始化)

Python的约定是变量是通过第一次赋值创建的,并且在分配一个变量之前尝试读取它们的值会引发异常.相比之下,PHP在读取时会隐式创建一个变量,并带有空值.这意味着在PHP中很容易做到这一点:

function mymodule_important_calculation() {
    $result = /* ... long and complex calculation ... */;
    return $resukt;
}
Run Code Online (Sandbox Code Playgroud)

此函数始终返回null,如果null是functuion的有效值,则bug可能会在一段时间内未被检测到.Python等价物会抱怨变量resukt在分配之前被使用.

那么......有没有办法将PHP配置为更严格的变量赋值?

php

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

JavaScript是单线程的吗?如果没有,我如何获得对共享数据的同步访问?

我有一个带有DIVs的网页,其中包含一个mouseover用于显示弹出信息泡泡的处理程序.我不希望一次看到多个信息泡泡.但是当用户将鼠标快速移动到两个项目上时,我有时会得到两个气泡.这不应该发生,因为显示弹出窗口的代码会取消之前的弹出窗口.

如果这是一个多线程系统,那么问题就很明显了:有两个线程试图显示一个弹出窗口,它们都会取消现有的弹出窗口,然后弹出自己的弹出窗口.但我认为JavaScript总是运行单线程,这会阻止这一点.我错了吗?事件处理程序是异步运行的,在这种情况下我需要同步访问共享数据,还是应该在库代码中查找用于取消弹出窗口的错误?

编辑添加:

  • 有问题的库是SIMILE Timeline及其Ajax库;
  • 事件处理程序会调用SimileAjax.DOM.cancelEvent(domEvt),我假设根据名称取消事件的冒泡;
  • 只是为了让事情变得更复杂,我实际上正在做的是开始超时,如果没有通过moustout显示弹出窗口取消,这是为了防止弹出窗口烦人地闪烁但是烦人地产生相反的效果.

我还有另一个戳,看看我是否可以解决我出错的地方.:-)

javascript browser multithreading dhtml simile

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

该对象是整数类型.我可以用少于五行代码获得它的价值吗?

我有一个数据阅读器.我想价值在它与值42进行比较,我知道这是一个完整的类型(例如,什么MySQL调用INT,TINYINT,SMALLINT,MEDIUMINT,BIGINT,JUMBODELUXEINT,等).我不想将实际类型硬连接到C#代码.我想出的最好的是

object x = reader.GetValue(i);
uint k = x is byte ? (byte) x
    : x is short ? (uint) (short) x
    : x is ushort ? (ushort) x
    : x is int ? (int) (int) x
    : (uint) x;
if (k == 42) { ... }
Run Code Online (Sandbox Code Playgroud)

这似乎令人难以置信的啰嗦.我尝试使用Equals但具有相同值的不同整数类型似乎不会测试相等.

有没有更好的办法?

c# type-conversion

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

无法使用boto为Amazon S3密钥设置cache-cotrol标头

我的Django项目使用django_compressor通过doto-storages包通过boto将JavaScript和CSS文件存储在S3存储桶中.

与django-storages相关的配置包括

if 'AWS_STORAGE_BUCKET_NAME' in os.environ:
    AWS_STORAGE_BUCKET_NAME = os.environ['AWS_STORAGE_BUCKET_NAME']
    AWS_HEADERS = {
        'Cache-Control': 'max-age=100000',
        'x-amz-acl': 'public-read',
    }
    AWS_QUERYSTRING_AUTH = False

    # This causes images to be stored in Amazon S3
    DEFAULT_FILE_STORAGE = 'storages.backends.s3boto.S3BotoStorage'

    # This causes CSS and other static files to be served from S3 as well.
    STATICFILES_STORAGE = 'storages.backends.s3boto.S3BotoStorage'
    STATIC_ROOT = ''
    STATIC_URL = 'https://{0}.s3.amazonaws.com/'.format(AWS_STORAGE_BUCKET_NAME)

    # This causes conpressed CSS and JavaScript to also go in S3
    COMPRESS_STORAGE = STATICFILES_STORAGE
    COMPRESS_URL = STATIC_URL
Run Code Online (Sandbox Code Playgroud)

这样做除了当我访问S3管理控制台中的对象时,我看到Cache-Control标题中的等号已更改为%3D,如此 …

django amazon-s3 boto

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