类包含1个抽象方法,因此必须声明为抽象方法或实现其余方法

use*_*133 6 php fatal-error

致命错误:类Validate包含1个抽象方法,因此必须在第21行的C:\ wamp\www\jump\task3\day8\abstract.php中声明为abstract或实现其余方法(BaseValidator :: SetRange)

<?php
    abstract class BaseValidator
    {
        abstract function Validate($string);
        abstract function SetRange($string);
    }
    class Validate extends BaseValidator
    {
        public function Validate($string)
        {
            if (!preg_match('/[^A-Za-z]/', $string))
            {
                echo "'{$string}' contains only alphabets!";
            } 
            if (is_numeric($string))
            {
                echo "'{$string}' Conatins No. Only!<br/>";
                echo '<br>';
            }
        }
    }
    class setRange extends BaseValidator
    {
        public function SetRange($string)
        {
            if(!(strlen($string)>4 && strlen($string)<10))
            {
                echo "You are not in range of 4-10";
            }
        }
    }
    $obj = new Validate();
    $obj = $obj->Validate("Hello");
    $obj = new SetRange("hello");
    $obj = $obj->SetRange("hello");
?>
Run Code Online (Sandbox Code Playgroud)

Dar*_*ren 19

为您减少错误消息:

致命错误:类Validate包含1个抽象方法,因此必须在第21行的C:\ wamp\www\jump\task3\day8\abstract.php中声明为abstract或实现其余方法(BaseValidator :: SetRange)

分解

  1. 您的类Validate只包含1抽象方法.
  2. Validate扩展的类BaseValidator具有2抽象方法集.
  3. 这意味着你的原始class(Validate)需要在其中指定第二个抽象方法(在这种情况下将是setRange()).

这意味着您可以简单地在您的类中设置该函数但将其设置为空:

class Validate extends BaseValidator
    {
        public function Validate($string)
        {
            if (!preg_match('/[^A-Za-z]/', $string))
            {
                echo "'{$string}' contains only alphabets!";
            } 
            if (is_numeric($string))
            {
                echo "'{$string}' Conatins No. Only!<br/>";
                echo '<br>';
            }
        }

        public function setRange($string) {}
    }
Run Code Online (Sandbox Code Playgroud)

边注:

您将需要与上述相同的setRange课程,因为它扩展了您的BaseValidator课程.

class setRange extends BaseValidator
    {
        public function Validate($string){}

        public function SetRange($string)
        {
            if(!(strlen($string)>4 && strlen($string)<10))
            {
                echo "You are not in range of 4-10";
            }
        }
    }
Run Code Online (Sandbox Code Playgroud)