对于不执行任何操作的函数,php默认返回NULL。
例如:1 <?php
2
3 function foo() {
4 // Nothing here
5 }
6
7 var_dump(foo()); // the result will be NULL
我试图实现一个函数,将有直接输出,我不需要从函数内部返回任何东西,我要获得的东西,如:
void var_dump()// it just only dumps information.
我的函数将生成一个图像,但不会返回任何信息。经过处理后,将在函数中使用ImageJpeg($image)生成图像。php手册中imageJpeg的签名是:
imagejpeg — Output image to browser or file
以这种方式,我将有输出图像和NULL从函数返回。我怎样才能避免呢?我怎样才能获得唯一的输出图像?
提前感谢。
与void function foo()
等价的PHP函数是一个没有return
语句的正则函数。这个函数是否输出是完全独立的。函数可以以各种方式输出和 return
值,或者两者都输出或两者都不输出。具体来说,这是一个输出图像的没有返回值的函数:
function foo() {
...
imagejpg(...);
}
foo();
这里您可能会感到困惑的是返回值和输出之间的区别。输出是程序最终输出给用户/stout/php://output
的内容。函数返回值是函数返回给调用者的值。
function foo() {
echo 'Hello World';
imagejpg(...);
return 'foo';
}
$bar = foo();
这个函数在屏幕上显示"Hello World",后面跟着一些二进制图像。该函数返回字符串'foo'
,变量$bar
现在保存着'foo'
,但这是而不是输出。
直接输出内容的函数可以通过echo
、print
等实现。例如:
function sayHello($name = null) {
if ($name === null) {
echo "Hello!";
} else {
echo "Hello {$name}";
}
}
sayHello("Fred"); // outputs: Hello Fred
sayHello(); // outputs: Hello!