众所周知
一、 使用 func_get_args()
函数
func_get_args()
函数可以获取函数参数列表的数组
<?php
class Shit
{
/**
* Function reload
*/
public static function fuck()
{
$args = func_get_args();
if (count($args) == 1) {
self::fuckMultiple($args[0]);
} elseif(count($args) == 2) {
self::fuckSingle($args[0], $args[1]);
}
}
private static function fuckMultiple(Array $humans)
{
foreach ($humans as $human) {
self::fuckSingle($human['name'], $human['sex']);
}
}
private static function fuckSingle($name, $sex)
{
if (is_string($name) && is_bool($sex))
echo ($sex ? "$name, boy♂next♂door" : "$name, my little baby~")."<br />";
else
echo "Invalid parameters.";
}
}
echo Shit::fuck(Array(
['name' => 'sabi', 'sex' => true],
['name' => 'maki', 'sex' => false]
));
echo Shit::fuck('jack', true);
二、 使用魔术方法
当访问对象中一个不存在的方法时就会调用 __call()
方法__callStatic()
方法
具体的例子在 PHP Manual 上就有了