PHP Velho Oeste 2024

print

(PHP 4, PHP 5, PHP 7)

printOutput a string

Descrierea

print ( string $arg ) : int

Outputs arg.

print is not actually a real function (it is a language construct) so you are not required to use parentheses with its argument list.

The major differences to echo are that print only accepts a single argument and always returns 1.

Parametri

arg

The input data.

Valorile întoarse

Returns 1, always.

Exemple

Example #1 print examples

<?php
print("Hello World");

print 
"print() also works without parentheses.";

print 
"This spans
multiple lines. The newlines will be
output as well"
;

print 
"This spans\nmultiple lines. The newlines will be\noutput as well.";

print 
"escaping characters is done \"Like this\".";

// You can use variables inside a print statement
$foo "foobar";
$bar "barbaz";

print 
"foo is $foo"// foo is foobar

// You can also use arrays
$bar = array("value" => "foo");

print 
"this is {$bar['value']} !"// this is foo !

// Using single quotes will print the variable name, not the value
print 'foo is $foo'// foo is $foo

// If you are not using any other characters, you can just print variables
print $foo;          // foobar

print <<<END
This uses the "here document" syntax to output
multiple lines with 
$variable interpolation. Note
that the here document terminator must appear on a
line with just a semicolon no extra whitespace!
END;
?>

Note

Notă: Deoarece aceasta este o construcție a limbajului și nu o funcție, ea nu poate fi apelată utilizând funcții de operare cu variabile .

A se vedea și

add a note add a note

User Contributed Notes 3 notes

up
31
user at example dot net
15 years ago
Be careful when using print. Since print is a language construct and not a function, the parentheses around the argument is not required.
In fact, using parentheses can cause confusion with the syntax of a function and SHOULD be omited.

Most would expect the following behavior:
<?php
   
if (print("foo") && print("bar")) {
       
// "foo" and "bar" had been printed
   
}
?>

But since the parenthesis around the argument are not required, they are interpretet as part of the argument.
This means that the argument of the first print is

    ("foo") && print("bar")

and the argument of the second print is just

    ("bar")

For the expected behavior of the first example, you need to write:
<?php
   
if ((print "foo") && (print "bar")) {
       
// "foo" and "bar" had been printed
   
}
?>
up
11
danielxmorris @ gmail dotcom
15 years ago
I wrote a println function that determines whether a \n or a <br /> should be appended to the line depending on whether it's being executed in a shell or a browser window.  People have probably thought of this before but I thought I'd post it anyway - it may help a couple of people.

<?php
function println ($string_message) {
   
$_SERVER['SERVER_PROTOCOL'] ? print "$string_message<br />" : print "$string_message\n";
}
?>

Examples:

Running in a browser:

<?php println ("Hello, world!"); ?>
Output: Hello, world!<br />

Running in a shell:

<?php println ("Hello, world!"); ?>
Output: Hello, world!\n
up
1
mark at manngo dot net
7 months ago
The other major difference with echo is that print returns a value, even it’s always 1.

That might not look like much, but you can use print in another expression. Here are some examples:

<?php
    rand
(0,1) ? print 'Hello' : print 'goodbye';
    print
PHP_EOL;
    print
'Hello ' and print 'goodbye';
    print
PHP_EOL;
   
rand(0,1) or print 'whatever';
?>

Here’s a more serious example:

<?php
   
function test() {
        return !!
rand(0,1);
    }
   
test() or print 'failed';   
?>
To Top