默认情况下,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)生成图像。用于imageJpeg的php手册中的签名是:
imagejpeg — Output image to browser or file
这样我将从函数返回输出图像和NULL。我怎么能避免这种情况。我怎样才能获得输出图像?
提前谢谢。
答案 0 :(得分:7)
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'
,但这是不输出。
答案 1 :(得分:2)
直接输出内容的功能可以通过echo
,print
等完成。例如:
function sayHello($name = null) {
if ($name === null) {
echo "Hello!";
} else {
echo "Hello {$name}";
}
}
sayHello("Fred"); // outputs: Hello Fred
sayHello(); // outputs: Hello!