Php Print vs Echo

Php Print vs Echo

Both echo and print are used to output data in PHP, but they have some differences in terms of usage and behavior:

  1. Return Value:

    • echo: Does not return any value. It simply outputs the data to the screen.

    • print: Returns 1 after printing the data to the screen. This makes print behave like a function, and it can be used in expressions.

  2. Syntax:

    • echo: Does not require parentheses. Its syntax is simple echo "Hello";.

    • print: Requires parentheses. Its syntax is print("Hello"); or print "Hello";.

  3. Multiple Arguments:

    • echo: Can handle multiple arguments separated by commas. For example, echo "Hello", " ", "World";.

    • print: Can only handle one argument at a time.

Here's a table summarizing the differences:

Featureechoprint
Return valueNo return valueReturns 1
SyntaxNo parenthesesRequires parentheses
Multiple argumentsSupportedOnly one argument

Examples:

// Using echo
echo "Hello ", "World";  // Output: Hello World

// Using print
print("Hello");          // Output: Hello

In most cases, developers prefer using echo due to its simplicity and the ability to handle multiple arguments without the need for parentheses. However, print can be used when you specifically need to use it within an expression and utilize its return value. For standard output of data to the screen, both echo and print are interchangeable.

Print used in the expression


<?php
if ( (print "hello") && false ) {
    print " - inside if";
}
else {
    print " - inside else";
}
// outputs "hello - inside else"
// unlike the previous example, the expression (print "hello") is evaluated first
// after outputting "hello", print returns 1
// since 1 && false is false, code in the else block is run

print "hello " && print "world";
// outputs "world1"; print "world" is evaluated first,
// then the expression "hello " && 1 is passed to the left-hand print

(print "hello ") && (print "world");
// outputs "hello world"; the parentheses force the print expressions
// to be evaluated before the &&
?>

echo used in the expression

<?php
// Because echo does not behave as an expression, the following code is invalid.
($some_var) ? echo 'true' : echo 'false';

// However, the following examples will work:
($some_var) ? print 'true' : print 'false'; // print is also a construct, but
                                            // it is a valid expression, returning 1,
                                            // so it may be used in this context.

echo $some_var ? 'true': 'false'; // evaluating the expression first and passing it to echo
?>

Does echo converts everything into string


<?php
// Non-string expressions are coerced to string, even if declare(strict_types=1) is used
echo 6 * 7; // 42

?>

Yes, in PHP, the echo statement automatically converts its input into a string representation before outputting it to the screen. This means that you can pass different data types (e.g., integers, floats, booleans, arrays, objects) as arguments to echo, and PHP will convert them into strings for display.

Here are some examples to illustrate how echo handles different data types:

// Integer
$number = 42;
echo $number; // Output: 42 (converted to a string)

// Float
$pi = 3.14;
echo $pi; // Output: 3.14 (converted to a string)

// Boolean
$isTrue = true;
echo $isTrue; // Output: 1 (converted to a string; true is represented as "1")

// Array
$fruits = array("apple", "banana", "orange");
echo $fruits; // Output: Array (converted to a string)

// Object
class Person {
    public $name = "John";
    public $age = 30;
}
$person = new Person();
echo $person; // Output: Object (converted to a string)

In each case, echo takes the input and converts it into its string representation before displaying it. However, for arrays and objects, the output will be simply "Array" and "Object," respectively, as they cannot be directly converted into meaningful string representations.

If you need more control over how different data types are converted to strings, you can use explicit type casting or string conversion functions like strval() to convert values to strings before using echo. For example:

$number = 42;
echo strval($number); // Output: 42 (explicitly converted to a string)

In general, PHP handles the conversion to strings automatically in most cases, making it convenient to use echo for simple output statements.

Did you find this article valuable?

Support NaveenJoshuva's Blog by becoming a sponsor. Any amount is appreciated!