PHP中魔术方法的作用是什么?
巴扎黑
巴扎黑 2017-04-10 17:17:04
0
2
547

魔术方法也用的蛮多,最近在想一个问题,到底PHP为什么要加入魔术方法这个东西,是为了更好的支持面向对象还是?

请各位路过的不吝赐教,以解小弟的疑惑!

巴扎黑
巴扎黑

reply all(1)
伊谢尔伦

其实还是为了更好的支持面向对象,下面是一个例子。。。

sum2($args[0], $args[1]);
                    break;
                case 3:
                    //求和:三个数
                    return $this->sum3($args[0], $args[1], $args[2]);
                    break;
            }
        }
    }

    /**
     * 利用魔术方法__callStatic实现伪重载。。。
     * @return [type] [description]
     */
    public static function __callStatic($name, $args) {
        if ($name === "area") {
            switch (count($args)) {
                case 1:
                    //计算圆的面积
                    return self::areaCircle($args[0]);
                    break;
                case 2:
                    //计算矩形的面积
                    return self::areaRectangle($args[0], $args[1]);
                    break;
            }
        }
    }

    /**
     * 计算圆的面积
     * @param  [type] $r [description]
     * @return [type]    [description]
     */
    public static function areaCircle($r) {
        return pi() * $r * $r;
    }

    /**
     * 计算矩形的面积
     * @param  [type] $length [description]
     * @param  [type] $width  [description]
     * @return [type]         [description]
     */
    public static function areaRectangle($length, $width) {
        return $length * $width;
    }

    /**
     * 求和:两个数
     * @param  [type] $num1 [description]
     * @param  [type] $num2 [description]
     * @return [type]       [description]
     */
    public function sum2($num1, $num2) {
        return $num1 + $num2;
    }

    /**
     * 求和:三个数
     * @param  [type] $length [description]
     * @param  [type] $width  [description]
     * @return [type]         [description]
     */
    public function sum3($num1, $num2, $num3) {
        return $num1 + $num2 + $num3;
    }
}

//测试开始

echo Tools::area(2) . "
"; echo Tools::area(2, 4) . "
"; $tools = new Tools(); echo $tools->sum(2, 3) . "
"; echo $tools->sum(2, 3, 4) . "
";
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!