标签: anonymous-function

PHP匿名函数在某些安装上导致语法错误

我有以下代码:

    $file_check_method_func = function($n) {
        $n = absint($n);
        if(1 !== $n) { $n = 0; }
        return $n;
    };
    $valid['file_check_method'] = array_map($file_check_method_func, $input['file_check_method']);
Run Code Online (Sandbox Code Playgroud)

这适用于我的PHP 5.3.5安装,但当我在PHP 5.2.15安装上运行此代码时,我得到:

Parse error: syntax error, unexpected T_FUNCTION in /home/xxxx/public_html/xxxx/xxxxxxx/wp-content/plugins/wordpress-file-monitor-plus/classes/wpfmp.settings.class.php on line 220
Run Code Online (Sandbox Code Playgroud)

第220行是上述代码的第一行.

所以我的问题是,我的代码中是否写错了会出现此错误?如果不是因为PHP 5.2.15中的错误或不支持的功能?如果是,那么我如何编写上面的代码以免产生错误?

上面的代码是一个类中的函数.

php syntax-error anonymous-function

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

如何使用变量声明中的匿名函数将字符串赋值给变量?

var destURL = function () {
            if (this.typeOfDash == 'edit') {
                return '../../ajax/getParams.aspx';
            }
            else {
                return 'DashCreator.aspx';
            }
Run Code Online (Sandbox Code Playgroud)

}

我希望这会工作,但它只是将函数分配给变量...我希望得到返回值作为变量值...任何人?

javascript anonymous-function

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

为什么使用匿名函数?

可能重复:
在JavaScript事件代码中使用匿名函数而不是命名函数进行回调和参数化有什么好处?

我一直在阅读/编写一些基本的Javascript和JQuery代码,并注意到在我阅读的几乎每个教程中,都使用匿名函数而不是命名函数.

例如,类似于:

$('document').ready(function(){
    alert("I am ready.");
});
Run Code Online (Sandbox Code Playgroud)

与:

function ready(){
    alert("I am ready.");
}

$('document').ready(ready());
Run Code Online (Sandbox Code Playgroud)

不是第二个例子,更容易阅读/理解?现在,我意识到这些都是非常简单的例子,但我想说的是,我觉得匿名函数使代码看起来混乱而且难以理解.到处都有大括号和括号,你不能在其他任何地方使用这个功能,因为它是匿名的.

功能的全部要点是能够将代码组织到不同的模块中以使代码看起来更清晰,使调试更容易并避免冗余代码吗?

为什么有人会使用匿名函数而不是命名函数?他们的目的是什么?

javascript jquery anonymous-function

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

array_walk和匿名函数

我正在尝试ucfirst使用array_walk和匿名函数应用于数组中的单词.我想更改"原始"数组的值$fruits.由于我不能使用传递参考,你能推荐我做什么?

<?php

$fruits = array('apple', 'orange', 'banana', 'cherry');

array_walk($fruits, function($a) {
        $fruits = ucfirst($a);
});

var_dump($fruits);

//results

array(4) {
  [0] =>
  string(5) "apple"
  [1] =>
  string(6) "orange"
  [2] =>
  string(6) "banana"
  [3] =>
  string(6) "cherry"
}
Run Code Online (Sandbox Code Playgroud)

php arrays anonymous-function

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

匿名功能与需要的时间不起作用?

一个简单的例子应该证明我的问题:

First I define a simple variable:
(def a '(["one" 1] ["two" 2] ["nine" 9]))

;; CASE 1: (This works correctly)
(take-while #(< (second %) 5) a)
Returns: (["one" 1] ["two" 2])

;; CASE 2: (This does not seem to work correctly)
;; The only difference is the '>' instead of '<'
(take-while #(> (second %) 5) a)
Returns: ()
Run Code Online (Sandbox Code Playgroud)

在我看来CASE 2应该返回(["9"9])?

有没有办法调试这个,看看我错过了什么?

谢谢!

clojure anonymous-function

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

为什么JSLint说"匿名函数并不总是为事件处理程序返回值"?

当我JSLint这段代码时:

$(document).keydown(function(e){ 
    if ($("#chaptersFunctionality").length !== 0) {
        if (e.keyCode == '13')
            return false;
        if ($("#kelvin").val() === "" && $("#caleb").attr("title") === "Show all steps") {
            switch(e.which){
            case 39:    if ((parseInt(currentAnchor)+1) < parseInt(maxi))
                expandMe(++currentAnchor);
                break;
            case 37:    if (currentAnchor > 0)
                expandMe(currentAnchor-1);
                break;
            }
        }
    }
});
Run Code Online (Sandbox Code Playgroud)

...我得到了很多警告,其中大部分都是我嘲笑的,但这个让我难过:" 匿名函数并不总是返回值 "

为什么这么说呢?事件处理程序不是匿名函数,是吗?并且它无论如何都没有返回任何价值,是吗?那么这意味着什么,以及[moll,pac]如果是什么呢?

jquery jslint anonymous-function eventhandler

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

将javascript事件处理程序转换为jquery

我想将事件处理程序转换为jquery样式的单击事件,但它似乎不喜欢传递事件,也许是因为它不再是匿名函数了?

        // variables
        var faqOne = document.getElementById("faqOne");
        var $hiddenOne = $(".faqOneHidden");


        // javascript event handler works!
        faqOne.addEventListener("click", function(e){
        showFaqOne.showClickedFaq(e);
        }, false);
        // javascript event handle - doesnt work!
        $("#faqOne").click(function(){
            showFaqOne.showClickedFaq(e);
        });
        // constructor
        function DisplayQFaqs(link, faq){
            this.link = link;
            this.faq = faq;
        }
        // method prototype
        DisplayQFaqs.prototype.showClickedFaq = function(e){
                var el = e.currentTarget;
                if(el === this.link) {

                   this.faq.toggle("slow", function(){
                   });
                }
        };
        // new DisplayQFaqs Objects
        var showFaqOne = new DisplayQFaqs(faqOne,$hiddenOne);
Run Code Online (Sandbox Code Playgroud)

javascript jquery events anonymous-function handler

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

为什么在构造函数中的异步操作中会吞下异常?

我以为我很聪明地找到了一种在ctor中调用aync方法的方法:

public AppStateModel(IBranchClient branchClient)
{
    _branchClient = branchClient;
    var loadBranch = new Action(async () =>
    {
        DataProviderReadResult<BranchDetailViewModel> result = await _branchClient.ReadOneItemAsync(AppSettings.BranchId, _initCts.Token);
    });
    loadBranch();
}
Run Code Online (Sandbox Code Playgroud)

但是动作的主体抛出一个异常,我用普通的方式记录并重新抛出throw;,但是这个ctor执行正常,我的其余代码继续运行,好像什么也没发生.为什么是这样?

c# constructor asynchronous anonymous-function async-await

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

在Javascript中使用匿名函数设置变量

我试图在Javascript中获取匿名函数之外的值.基本上,我希望这个函数返回4.我觉得有一个简单的修复,但我不确定.谢谢!

function a(){
  var x = 1;
  ()=>{
    x = 4;
  }
  return x;
}
Run Code Online (Sandbox Code Playgroud)

javascript anonymous-function

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

比c#中的Invoke匿名方法更清洁

这是编写此代码的更好方法吗?这种方式看起来很复杂.我想example根据需要分配值anotherVariable.

var example = new Func<DateTime>((() =>
{
    switch (anotherVariable)
    {
        case "Jesus birth": return new DateTime(0, 12, 24);
        case "Second condition": return new DateTime(2017, 23, 11);
        // etc
        default: return DateTime.Now;
    }
})).Invoke();
Run Code Online (Sandbox Code Playgroud)

.net c# anonymous-function func

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