专业的人干专业的"事",切莫用exit来干输出的事
在程序测试的过程中为了图片方便经常少写一行echo的代码来运行查看某个变量,在绝大部分的情况下我们传的都是非整数类型的变量,比如字符串等,所以在这样的情况下用exit来输出变量的值是能看到输出结果的,但是如果是整数类型的情况就不一样了,下面通过几个实验来说明一下这个问题
第一个实验
实参直接是数字,在类的静态方法中通过exit来输出,结果将输出为空
DB::test(1);
class DB{
public static function test($num){
exit($num);
}
}
第二个实验
实参直接是字符,在类的静态方法中通过exit来输出,结果能够输出字符串
DB::test("1");//里面的数字两边被加上了双引号
class DB{
public static function test($num){
exit($num);
}
}
第三个实验:
实参仍然是数字,不过在类的静态方法中不再通过exit来输出,而是使用echo来输出,并且后面还带了exit()来终止执行,结果是仍然有输出
DB::test(1);
class DB{
public static function test($num){
echo $num;
exit();
}
}
第四个实验
既然静态方法中不能用exit来输出整数类型的变量,那不是静态方法的是否又可以呢?
class DB{
public function test($num){
exit($num);
}
}
$db = new DB();
$db->test(1);
上面这个实验经过测试发现在非静态方法中仍然是不能用exit来输出整数类型的值
第五个实验
既然非静态方法中也不能用exit来输出整数类型的变量,那能不能输出浮点数类型的变量呢?
class DB{
public function test($num){
exit($num);
}
}
$db = new DB();
$db->test(3.1415926);
上面这个实验经过测试发现在非静态方法中可以用exit来输出浮点类型的变量
第六个实验
既然放在类的静态方法或者非静态方法都不行,那么放在函数中又会怎么样呢?
function test($num){
//die($num);//不能
exit($num);//不能
}
test(1);
上面这个实验经过测试发现在函数中还是不能用exit来输出整数类型的值,同时将exit换成die也还是一样不能输出
所以经过上面的五个实验测试,最后总结不难发现,不管是在静态方法中还是非静态方法中或者函数中都不能直接用exit或者die来输出整数类型的变量,只能用echo来输出,至于为什么会这样,我们其实也没有必要去深究,因为exit本来就不是专业干输出的这件事情的,他的主要职责只是用于终止程序运行的,echo才是专业干输出这件事的,这不也正是应了那句话叫专业的"人"干专业的"事"吗!