找出 Trait 别名里的 bug

来自 Trait
PHP 8.3.33 进阶 4分钟 找出 1处问题

作者只想公开 run(),但调用方仍能调用 delete()。请找出错误。

php
<?php
trait DeletesRecord
{
    public function delete(): string
    {
        return 'deleted';
    }
}
final class AdminTool
{
    use DeletesRecord {
        DeletesRecord::delete as private remove;
    }
    public function run(): string
    {
        return $this->remove();
    }
}
echo (new AdminTool())->delete();
在试验场中打开
报告错误