相关疑难解决方法(0)

在PHP 5.4.0之前的匿名函数中使用`$ this`

PHP手册说明

$this在PHP 5.4.0之前无法使用匿名函数

匿名功能页面上.但我发现我可以通过赋值$this给变量并将变量传递给use函数定义中的语句来使其工作.

$CI = $this;
$callback = function () use ($CI) {
    $CI->public_method();
};
Run Code Online (Sandbox Code Playgroud)

这是一个好习惯吗?
有没有更好的方法来$this使用PHP 5.3 访问匿名函数?

php anonymous-function

85
推荐指数
3
解决办法
5万
查看次数

我怎样才能解决PHP中缺少finally块的问题?

版本5.5之前的PHP没有最终块 - 即,在大多数敏感语言中,您可以执行以下操作:

try {
   //do something
} catch(Exception ex) {
   //handle an error
} finally {
   //clean up after yourself
}
Run Code Online (Sandbox Code Playgroud)

PHP没有finally块的概念.

任何人都有解决这种语言相当恼人的漏洞的经验吗?

php exception resource-cleanup

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

从闭包中访问私有变量

我试图从一个闭包中引用一个对象的私有变量.下面的代码似乎有效,但它抱怨Fatal error: Cannot access self:: when no class scope is active in test.php on line 12Fatal error: Using $this when not in object context in test.php on line 20.

任何想法如何使用闭包完成相同的结果,同时保持变量私有和没有帮助函数(击败私有变量的整个想法).

class MyClass
{

    static private $_var1;
    private $_var2;

    static function setVar1( $value )
    {
        $closure = function () use ( $value ) {
            self::$_var1 = $value;
        };
        $closure();
    }

    function setVar2( $value )
    {
        $closure = function () use ( $value ) {
            $this->_var2 = $value; …
Run Code Online (Sandbox Code Playgroud)

php closures scope

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