我怎么能使一个函数在php将签名无效myFunction()


How can I make a function in php that will have signature void myFunction()

对于不执行任何操作的函数,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',但这是而不是输出

直接输出内容的函数可以通过echoprint等实现。例如:

function sayHello($name = null) {
    if ($name === null) {
       echo "Hello!";
    } else {
       echo "Hello {$name}";
    }
}
sayHello("Fred"); // outputs: Hello Fred
sayHello();       // outputs: Hello!