繁体   English   中英

摘要 Class Lambda Function 在 PHP

[英]Abstract Class Lambda Function in PHP

我对抽象 class lambda function 在返回 bool 值中的用法感到困惑。 我想定义一个 lambda function ,它接受一个 obj 类型的输入并返回 bool ,这个返回值存储在一个变量中。 我想把实现留给子类。 如何定义这个 function? 我目前在下面写,这给了我错误:

$var = (function(OBJ type): bool);

?'input' => this::var

这是更好理解的示例。

<?php
abstract class AbstractClass {
    abstract public function getFunction(object $callback): bool;
}

class ChildClass extends AbstractClass {
    public bool $get_function_result;

    public function getFunction(object $callback): bool {
        $this->get_function_result = is_callable($callback);
        return $this->get_function_result;
    }
}

$instance = new ChildClass();
$result = $instance->getFunction(function () {});
var_dump($result);

您可以在此处阅读有关抽象类的更多信息: https://www.php.net/manual/en/language.oop5.abstract.php

更新:

<?php
class JustClass {
    public object $example;
    function __construct() {
        $this->example = function(object $callback): bool {
            return true;
        };
    }
}
$instance = new JustClass;
echo ($instance->example)(function() {});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM