PHP 7.1
我目前正在尝试制作一个抽象类,以提供和定义并部分实现其子类的功能。
在这里,我使用以下构造:
abstract class Parent {
public static function fromDB(string $name = '') {
$instance = new static();
if (!empty($name)) {
$instance->setName($name)->read();
}
return $instance;
}
public abstract function read();
public abstract function setName(string $name): self;
}
Run Code Online (Sandbox Code Playgroud)
在这里PHP似乎理解setName($name)返回类型为Object的Object Parent,但是PhpStorm指示read()不能在结果上调用,这将是预期的结果。
错误消息:在主题类中找不到引用的方法。
我不确定这是否是PHP或PhpStorm中的错误,或更可能是我不了解自己在做什么...
我已经阅读了“后期静态绑定”和以下部分讨论此问题的问题,但我不知道如何解决此问题:
感谢您的时间和帮助。
编辑:如下所示,我试图在子类中实现:
public function setName(string $name = null): user {...}
Run Code Online (Sandbox Code Playgroud)
这显然不适用于selfreturn,但(IMO应该)使用static,这是被禁止的。
如何允许用户“暂停当前管道并返回到命令提示符”,然后在 powershell 脚本中恢复?
我在一篇有关 Powershell 中的用户交互的博客文章中偶然发现了这一行
$suspend = New-Object System.Management.Automation.Host.ChoiceDescription "&Suspend", "Pause the current pipeline and return to the command prompt. Type ""exit"" to resume the pipeline."
Run Code Online (Sandbox Code Playgroud)
这是提示中的一个模拟选项,模仿本机命令(Remove-Item)的外观。你瞧:该命令实际上实现了该行为。进行了快速的 Google 搜索,我没有在脚本中找到实现。