如何在php中创建一个具有签名void myFunction()的函数

时间:2011-10-12 12:03:49

标签: php

默认情况下,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。我怎么能避免这种情况。我怎样才能获得输出图像?

提前谢谢。

2 个答案:

答案 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)

直接输出内容的功能可以通过echoprint等完成。例如:

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

sayHello("Fred"); // outputs: Hello Fred
sayHello();       // outputs: Hello!