[英]PHP Class extending an Abstract cannot run a function that has the same name as the Abstract Class
[英]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.