小编Dan*_*Dan的帖子

PHP5静态方法继承.超载.获得被叫类名

我有很好的oop理解,但对它在php中的实现理解不足...

我有以下代码,希望它是自我记录=).

我需要BB输出

class A{
    // I can't copy function::classname() to all my descendant classes

    static function classname(){
        echo __CLASS__;
    }
}

class B extends A{

    static function test(){
        self::classname();
    }

    function test1(){
        self::classname();
    }



    //i have A LOT of static and non-static functions using self::classname() in their code
    // I can't copy all them to base class
    }

    $v = new B();
    B::test();
    $v->test1();
Run Code Online (Sandbox Code Playgroud)

我坚持static::self::语法


PS:我遇到的另一个疯狂的问题:

假设我有

function doSomething(){
    echo $this->id;
}
Run Code Online (Sandbox Code Playgroud)

有时它会进入静态上下文.是的,我知道,那是因为我糟糕的应用程序设计.但是可以创建第二个(镜像,重载)功能 …

php oop static

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

Python:将字符串拆分为单词,保存分隔符

我有一个字符串:

'Specified, if char, else 10 (default).'
Run Code Online (Sandbox Code Playgroud)

我想把它分成两个元组

words=('Specified', 'if', 'char', 'else', '10', 'default')

separators=(',', ' ', ',', ' ', ' (', ').')
Run Code Online (Sandbox Code Playgroud)

有人对此有快速解决方案吗?

PS:此符号'-'是单词分隔符,不是单词的一部分

python

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

将样式应用于<form>元素是一种好习惯吗?

将样式应用于<form>标记是:

a)一个好的做法,它减少了页面上元素的数量并使代码清晰

b)由于语义的不良做法,而是使用其他元素,div用于风格,form用于表格

c)不要问愚蠢的问题,专注于实际工作!

html css

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

请解释我Eric Meyer的CSS重置

首先,我想告诉你为什么我问这个问题.我通常更新写得不好而没有重置的项目.我想提高项目的质量,所以似乎应用CSS重置是绝对必要的.

每次我改变一些东西时,我不想在每个浏览器中做一个像素完美测试的艰苦工作,我不想完全重写所有CSS.

所以:

当我写作时:

*{
    margin:0; 
    padding:0;
    border:0;
}
Run Code Online (Sandbox Code Playgroud)

我知道会遇到什么麻烦:<p>松散的衬垫<input>, <select>, etc. 会松动衬垫和边框.所以我必须手动指定它们.

这段代码更难理解:

*{
    font-size: 100%;
    font: inherit;
    vertical-align: baseline;
}
Run Code Online (Sandbox Code Playgroud)

而我完全对此感到困惑:

body {
    line-height: 1;
}
Run Code Online (Sandbox Code Playgroud)

css css-reset

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

了解CORS安全性:允许浏览器跨域访问的服务器的用途是什么?

我刚刚发现,为了允许跨域AJAX调用,Access-Control-Allow-Origin应该在SERVER端设置头.这对我来说很沮丧,让我解释一下原因:

1)典型用例是客户端想要发出跨域请求.我从来没有听说过服务器试图限制外来网页的访问.哦,我记得'防止图像hotlinking',这是我托管的一个有趣的功能,可以通过发送假的'Referrer`标题轻松击败.

2)即使服务器想要限制来自其他域的连接,也不可能使用HTTP协议的功能来实现这一点.我建议使用令牌.

3)在仍然可以使用jsonp的同时阻止XMLHttpRequests的用途是什么?

你能解释一下为什么这样做吗?

对于仍在阅读的人来说,还有一个额外的问题:

4)您是否知道如何防止来自网页的任何跨域请求?想象一下,一个初级Web开发人员在页面上创建一个登录表单,其中包含可能会嗅探密码的广告或其他脚本?这不是网络安全的本质吗?为什么有人在谈论这个?

javascript security ajax cross-domain cors

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

Javascript关闭技术

  1. 我有一个创建幻灯片的对象.
  2. 我想在页面上有几个幻灯片
  3. 我有一个幻灯片元素的事件处理程序
  4. 我希望事件处理程序知道哪个幻灯片对象创建了一个单击的项目

-

slideshow=function(){

   var g = document.createElement(...);

   ...

   g.onclick = f1;

   f1 = function(slideshow_instance, event) {
      //EXPLAIN ME HOW TO GET THE slideshow_instance
   }

}

var sl1 = new slideshow();
var sl2 = new slideshow();
Run Code Online (Sandbox Code Playgroud)

单击已创建的元素幻灯片应该返回

SL1

要么

SL2

我解释得好吗?

javascript

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

我可以使用$ _SESSION作为内存缓存吗?

每次加载页面时,我都会连接到数据库以获取settings存储基本应用程序设置的表.它看起来很有用.我有一个想法,$settings在$ _SESSION变量中临时存储数组.因此,每次启动脚本时,它都会检查$ _SESSION ['settings']是否为空,并仅在数据库中加载数据.

我的问题是:

1)这是正常做法还是有严重的陷阱?

2)这会加快我的申请吗?

php session

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

以优雅的方式停止jQuery链接

首先,我有点困惑,我无法立刻找到答案.问题是关于代码风格.

考虑一个例子:

$('input[type=text]').on('click', doSomething);
Run Code Online (Sandbox Code Playgroud)

如果页面上没有输入会发生什么?此选择器的结果似乎是null,我们得到一个错误.

所以,我们必须使代码变得更大,更丑陋:

var inputs = $('input[type=text]');

if (inputs) {
    inputs.on('click', doSomething);
}
Run Code Online (Sandbox Code Playgroud)

我喜欢jQuery,我希望这个解决方案更优雅,更简洁.


UPDATE

这个问题的原因prototype.js包括在页面上的三方脚本.道歉,我应该在发布SO之前在沙盒中测试问题

javascript jquery

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

如何列出给定分支中更改的文件

我正在寻找一种方法来查找在给定分支中编辑的文件列表.它尚未合并为默认值.hg diff对我来说太冗长了.

我想过滤merge FROM default所做的任何更改

mercurial

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

password_hash:自动生成盐超过手动的任何优点?

如果我理解正确,任何PHP升级,或移动到不同的服务器将使以前散列的密码(存储在数据库中)无用?因为新系统中的盐会有所不同.

这让我对自动生成盐的用例感到好奇.

php password-encryption

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

如何以角度方式迭代表单字段?

我有一个包含许多字段的表单,我需要使用一些函数逐个处理.您可以假设我需要将所有字段的值连接成一个字符串.

表格使用ng-model.

<div ng-form="form" ng-submit="submit()" novalidate>
    <input ng-model="ctrl.firstName" required="true">
    <input ng-model="ctrl.lastName" required="true">
    <!-- 30+ more inputs -->
</div>
Run Code Online (Sandbox Code Playgroud)

我想以角度方式做这个,而不是迭代DOM.

javascript angularjs

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