首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >类包含1个抽象方法,因此必须声明为抽象方法或实现其余方法。

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

Stack Overflow用户
提问于 2014-05-21 06:09:57
回答 1查看 66.2K关注 0票数 10

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

代码语言:javascript
复制
<?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");
?>
EN

回答 1

Stack Overflow用户

发布于 2014-05-21 06:26:32

为您简化错误消息:

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

细目

  1. 1只包含Validate抽象方法。
  2. 2抽象方法集合了Validate扩展的类,即BaseValidator
  3. 表示原始类(**Validate**)的需要在其中指定第二个抽象方法(在本例中,设置的是 setRange()**)。**)

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

代码语言:javascript
复制
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) {}
    }

旁注:

您对setRange类的要求与对BaseValidator类的扩展相同。

代码语言:javascript
复制
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";
            }
        }
    }

Example

票数 22
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23775250

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档