【问题标题】:how to use anonymous function as a property value? [duplicate]如何使用匿名函数作为属性值? [复制]
【发布时间】:2014-08-02 11:46:21
【问题描述】:

我想在关联数组中存储一个函数,但 PHP 抛出此错误:

解析错误:语法错误,意外的“函数”(T_FUNCTION)在 C:\Program Files\wamp\www.... 第 12 行

代码在这里:您也可能知道我想要做什么。

private $rules = array(
    "required" => array(
        "message" => "This field is required",
        "rule" => function($value) {
            return isset($value) && !empty($value);
        }
    )
);

版主提到的这些问题没有答案,只有信息。我已经编辑了这个问题,现在它完全有资​​格获得答案。版主删除了解决此问题的 cmets,尽管其中一些需要删除。

【问题讨论】:

  • 问题中有很多答案标记为重复。我相信您应该明确说明为什么这些答案不适合您的问题。缺少此信息,我看不出应该重新打开此问题的明显原因。
  • @UliKöhler 我对这个问题是关闭还是重新打开没有问题。版主提到的问题没有回答上面提出的问题,how to 部分。我没有时间通过​​网络搜索并证明网络上没有答案。我的意思是,SO 的 2 个问题没有回答 how to 部分。
  • 我同意不可能证明某事不存在。但是,我仍然不明白您为什么要how to,因为重复问题的答案清楚地表明这是不可能的(至少在 PHP 5.3 之前)。请明确说明重复问题中究竟缺少什么。也许我不明白but only is information,但我相信大多数人也不明白。
  • @UliKöhler 没有什么是不可能的。我找到了解决方案。只需使用匿名函数数组在__construct 中初始化一个局部变量,然后将其分配给对象的属性。这很简单,你说这是不可能的。重复的问题不包含解决方案。
  • 不,我不是。我是说根据重复的问题(即它的答案),直到 PHP 5.3 如果不做不同的事情似乎是不可能的。在我看来,您的解决方案似乎建议以不同的方式进行操作(本质上没有错)。如果您已经知道答案(这是一件好事!)或尝试过某些事情,我不明白您为什么首先提出这个问题(或者,如果您后来发现了,为什么您不编辑问题并且添加您尝试过的内容以及问题的哪一部分仍然存在)。也许您也可以添加您的概念作为对其他问题的回答?

标签: php syntax anonymous-function


【解决方案1】:

据我所知,没有。但是您可以将它们存储在变量中。

http://php.net/manual/en/functions.anonymous.php

【讨论】:

    猜你喜欢
    • 2017-03-28
    • 1970-01-01
    • 1970-01-01
    • 2022-01-22
    • 2014-09-14
    • 2018-12-16
    • 1970-01-01
    • 2013-06-30
    相关资源
    最近更新 更多