包含问题的快速代码:
abstract class ClassParent {
public static $var1 = "ClassParent";
}
class ClassChild1 extends ClassParent{
public static function setvar1(){
ClassChild1::$var1 = "ClassChild1";
}
}
class ClassChild2 extends ClassParent{
public static function setvar1(){
ClassChild2::$var1 = "ClassChild2";
}
}
ClassChild1::setvar1();
echo ClassChild2::$var1;
// Returns "ClassChild1". Shouldn't this still be "ClassParent"?
Run Code Online (Sandbox Code Playgroud)
我假设上面是预期的行为而不是PHP错误.在这种情况下,我怎么能在父类中声明一个静态变量,它将为子类单独处理.换句话说,我想要具有单独的静态值PER CHILD CLASS.我必须在子类中具体声明静态变量,还是可能有另一种方式?
谢谢!
PHP 5.5中新的password_hash API很不错,我想开始在任何地方使用它.鉴于较旧的项目具有较旧的数据库,其中密码存储在md5哈希中,将旧用户密码迁移到新的更安全的API的最佳方法是什么?
除了简单地提示用户在下次登录时重置密码(这对用户来说这是不切实际和烦人的)我还考虑过使用当前md5哈希作为所有现有用户的password_hash()输入的可能性.为了验证这些用户的密码(在登录期间),我将他们的输入转换为md5哈希,然后将其用于password_verify().新用户将免于这一额外的步骤.
这是一个值得这样做的方法吗?是否有更好的透明迁移方式,用户不会因密码重置而烦恼,但我可以立即享受更安全的哈希带来的好处吗?
最重要的是,在使用现有的md5哈希(易于暴力)和使用password_hash()API来"双重哈希"时,是否还有安全优势?
Safari有一个"功能",可以在您输入网址时预先加载页面.
现在对于大多数用户来说,这确实是一项功能,可以加快页面加载速度.但是对于Web开发人员来说,它可能会带来麻烦 - 特别是当它自动加载您之前使用但目前无意运行的脚本(如导入程序或后台脚本)时.
这种情况发生在Safari 8.x下,但旧版本也可能出现这种情况.
此外,请注意,此功能不同于"DNS预取",这是我遇到的唯一相关解释 - 我已禁用DNS预取,但未解决此问题...
我正在使用AVPlayer从网址播放歌曲,我初始化并在我的viewcontroller中分配它,现在我有一个问题,当我导航到另一个视图控制器并返回主播放器播放歌曲细节和滑块更新应该保留但问题是什么时候我再次导航到主播放器播放细节和滑块更新未发生但歌曲不断播放.我怎么能避免这种情况,任何人都能告诉我一些例子.我需要创建一个单例类吗?如果是这样,如何创建单例类AVPlayer?