PHP 8.2.0 Beta 3 available for testing

print

(PHP 4, PHP 5, PHP 7, PHP 8)

printBir dizge çıktılar

Açıklama

print(string $ifade): int

ifadeyi çıktılar.

print aslında bir işlev değildir (bir dil oluşumudur), dolayısıyla değiştirgesini belirtirken yaylı ayraçları kullanmanız gerekmez.

echo'dan başlıca farklar, print'in tek bir değiştirge kabul etmesi ve daima 1 döndürmesidir.

Değiştirgeler

ifade

Çıktılanacak ifade. Dizge olmayan değerler strict_types yönergesi etkin olsa bile dizgeye zorlanır.

Dönen Değerler

Daima 1 döner.

Örnekler

Örnek 1 - print örnekleri

<?php
print "print yaylı ayraçlar olmadan da çalışır.";

// Satırsonu veya boşluk eklemek gerekmez;
// aşağıdaki tek satırda "helloworld" çıktılar.
+print "hello";
+print 
"world";

print 
"Bu çok satırlı bir
dizge olup satırsonu karakterleri
de çıktılanır."
;

print 
"Bu çok satırlı bir\ndizge olup satırsonu karakterleri\nde çıktılanır.";

print 
"Karakterlerin öncelenmesi böyle yapılır: \"Tıpkı böyle\".";

// Değiştirge dizge üreten harhangi bir ifade olabilir
$bu "Bu da";
print 
"$bu Buda"// Bu da Buda

// Ayrıca dizileri de kullanabilirsiniz
$bar = array("değer" => "Buda");

print 
"Bu da {$bar['değer']} !"//  Bu da Buda !

// declare(strict_types=1) olsa bile dizge olmayan iadeler dizgeye zorlanır
print 7// 42

// Tek tırnak içine alırsanız değişken basılır, değeri değil
print '$bu Buda'// $bu Buda

// Başka karakter kullanmazsanız sadece değişkenin değeri basılır
print $bu;          // Bu da

// print değer döndürdüğünden ifadelerde kullanılabilir
// Çıktısı: "hello world"
if ( print "hello" ) {
    echo 
" world";
}

// Çıktısı: "true"
=== ) ? print 'true' : print 'false';
?>

Notlar

Bilginize: Yaylı ayraçların kullanımı

print deyiminin değiştirgesini yaylı ayraçlar arasına almak bir sözdizimi hatasına yol açmaz ve normal bir işlev çağrısı gibi görünen bir sözdizimi de üretmez. Ancak bu yanlış anlaşılabilir, çünkü yaylı ayraçlar aslında çıktılanacak ifadenin parçasıdır, print deyimim parçası değildir.

<?php
print "hello";
// "hello" basar

print("hello");
// bu da "hello" basar, çünkü ("hello") geçerli bir ifadedir

print(2) * 3;
// "9" basar; yaylı ayraçlar sayesinde 1+2 önce yorumlanır, sonra da 3*3
// print deyimi ifadenin tümünü tek bir değiştirge olarak görür

if ( print("hello") && false ) {
    print 
" - inside if";
}
else {
    print 
" - inside else";
}
// " - inside if" basar
// ("hello") && false ifadesi önce yorumlanır ve false ile sonuçlanır
// bu boş dizgeye zorlanır "" ve çıktılanır
// print deyimi 1 döndürür, böylece if bloğundaki kod çalıştırılır
?>

print büyük bir ifade ile kullanılırken, anahtar sözcüğü ve değiştirgesini yaylı ayraçlar arasına almak istenen sonucu üretmek için gerekli olabilir:

<?php
if ( (print "hello") && false ) {
    print 
" - inside if";
}
else {
    print 
" - inside else";
}
// "hello - inside else" basar
// önceki örneğin tersine (print "hello") ifadesi önce yorumlanır
// "hello" bastıktan sonra 1 döndürür
// 1 && false ifadesinin sonucu false olduğundan else bloğundaki kod çalıştırılır

print "hello " && print "world";
// "world1" basar; önce print "world" yorumanır,
// sonra soldaki print'e "hello " && 1 aktarılır

(print "hello ") && (print "world");
// "hello world" basar; ayraçlar print ifadelerinin
// &&'den önce yorumlanmasını sağlar
?>

Bilginize: Bu bir işlev değil, dil oluşumu olduğundan değişken işlevler veya isimli değiştirgeler kullanılarak çağrılamaz.

Ayrıca Bakınız

add a note

User Contributed Notes 2 notes

up
29
user at example dot net
13 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
15
danielxmorris @ gmail dotcom
14 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
To Top