PHPWales 2020 - June 3rd to June 4th

PHP etiketleri

PHP bir dosyayı çözümlerken, hangi bölümü yorumlayıp hangi bölümü yorumlamadan geçeceğine karar vermek için <?php ve ?> açılış ve kapanış etiketlerine bakar. Bu şekilde çözümleme PHP'nin her çeşit farklı belgeye gömülmesini sağlar, çünkü bir çift açılış ve kapanış etiketinin dışındaki her şey PHP çözümleyicisi tarafından gözardı edilir.

PHP ayrıca kısa başlangıç etiketine de <? izin verir. Bu sadece, PHP --enable-short-tags yapılandırma seçeneği ile derlenerek veya php.ini yapılandırma dosyası yönergesi short_open_tag kullanılarak etkinleştirilebilir.

Bir dosya saf PHP kodu ise, dosyanın sonunda PHP kapanış etiketini koymamak tercih edilir. Yazılımcıdan herhangi bir çıktı gönderme isteği gelmezse PHP betiğin bu noktasında çıktı tamponlamasını başlatacağından kapama etiketinden sonra istenmeyen etkilere neden olabilecek boşluk veya yeni satırların yanlışlıkla eklenmesi böylece engellenmiş olur.

<?php
echo "Merhaba Dünya";

// ... daha kod

echo "İletişimin sonu";

// PHP kapama etiketi olmadan betik burada biter

Sürüm Bilgisi
Sürüm: Açıklama
7.0.0 <%, %>, <%= ASP etiketleri ve <script language="php"> betik etiketi PHP'den kaldırıldıP.
5.4.0 short_open_tag php.ini seçeneğine bakmaksızın <?= etiketi daima kullanılabilir oldu.

add a note add a note

User Contributed Notes 2 notes

up
9
crazytonyi at gmail dot com
3 years ago
Regarding earlier note by @purkrt :

> I would like to stress out that the opening tag is "<?php[whitespace]", not just "<?php"

This is absolutely correct, but the wording may confuse some developers less familiar with the extent of the term "[whitespace]".

Whitespace, in this context, would be any character that generated vertical or horizontal space, including tabs ( \t ), newlines ( \n ), and carriage returns ( \r ), as well as a space character ( \s ). So reusing purkrt's example:

<?php/*blah*/ echo "a"?>

would not work, as mentioned, but :

<?php /*php followed by space*/ echo "a"?>

will work, as well as :

<?php
/*php followed by end-of-line*/ echo "a"?>

and :

<?php    /*php followed by tab*/ echo "a"?>

I just wanted to clarify this to prevent anyone from misreading purkrt's note to mean that a the opening tag --even when being on its own line--required a space ( \s ) character. The following would work but is not at all necessary or how the earlier comment should be interpreted :

<?php
/*php followed by a space and end-of-line*/ echo "a"?>

The end-of-line character is whitespace, so it is all that you would need.
up
-25
Mark Clements (kennel17.co.uk)
1 year ago
Closing PHP tags are recognised within single-line comments:

    <?php
   
// Code will end here ?> This is output as literal text.

    <?php
   
# Same with this method of commenting ?> This is output as literal text.

However they do not have an effect in C-style comments:

    <?php
   
/* Code will not end here ?> as closing tags are ignored inside C-style comments. */
   
?>
To Top