PHP:彼此使用的类

我有父类Color和children,ColorRGBA和ColorHSLA.在Color类中我想使用这些子函数的静态函数,但是我找不到错误“Class’Color’.”这是同样的问题
http://forums.codeguru.com/showthread.php?t=469995但是类Color;似乎不适用于PHP.

Color.php:

include_once 'ColorRGBA.php';
include_once 'ColorHSLA.php';

class Color{
    public static function isValid(&$tokens, $i) {
        return ColorRGBA::isValid($tokens, $i) || ColorHSLA::isValid($tokens, $i);
    }
}

ColorHLSA.php和类似的ColorRGBA.php

include_once 'Color.php';

class ColorRGBA extends Color {
    public static function isValid(&$t, &$i) {
        ...
    }
}

我应该如何重建我的类层次结构或包含指令?或者还有其他选择如何使我的代码工作?

最佳答案 为了解决这类问题,也许你应该考虑实现
factory class.如果这不是你的风格,另一个优雅的方法是使用
__autoload().

至于代码的维护.根据您介绍的颜色数量,这将很困难.为什么不尝试这样的事情:

class Color{
    public static function isValid($type, &$tokens, $i){
        $class_name = 'Color'.$type;            
        if (!class_exists($class_name)) {
            throw new Exception('Missing '.$class_name.' class.');
        }

        $class_name::isValid(&$tokens, $i);
    }
}

PHP 3.5

点赞