PHP 8.3.4 Released!

Çözümleyici Dizgeciklerinin Listesi

PHP dilinin çeşitli parçaları dahili olarak dizgeciklerle ifade edilir. Geçersiz bir dizgecikler içeren bir kod parçacığı, şuna benzer hatalara neden olabilir: "Parse error: syntax error, unexpected token "==", expecting "(" in script.php on line 10.". Buradaki == dizgeciği dahili olarak T_IS_EQUAL sabiti ile ifade edilir.

Aşağıdaki tabloda tüm dizgecikler listelenmiştir. Bunlar aynı zamanda PHP sabiti olarak da kullanılabilir.

Bilginize: T_* sabitlerinin kullanımı

T_* sabitlerinin değerleri, PHP'nin temel çözümleyici alt yapısına dayalı olarak otomatik üretilir. Yani bir dizgeciğin somut değeri iki PHP sürümü arasında değişebilir. Yani kodunuz PHP sürümleri arasında uyumluluk sağlamak için PHP'nin X.Y.Z sürümünden alınmış özgün T_* değerlerine güvenmemelidir.

T_* sabitlerini çok sayıda PHP sürümü arasında kullanılabilir yapmak için, tanımsız sabitler kullanıcı tarafından uygun bir strateji seçilerek tanımlanabilir: T_* değerlerinden ve özel değerlerden (10000 gibi büyük bir değer kullanmak) yararlanılabilir.

<?php
// PHP 7.4.0 öncesinde, T_FN tanımlı değildi.
defined('T_FN') || define('T_FN', 10001);

Dizgecikler
Dizgecik Söz dizimi Gönderim
T_ABSTRACT abstract Sınıf Soyutlama
T_AMPERSAND_FOLLOWED_BY_VAR_OR_VARARG & Tür bildirimleri (PHP 8.1.0 ve sonrasında kullanılabilir)
T_AMPERSAND_NOT_FOLLOWED_BY_VAR_OR_VARARG & Tür bildirimleri (PHP 8.1.0 ve sonrasında kullanılabilir)
T_AND_EQUAL &= atama işleçleri
T_ARRAY array() array(), dizi sözdizimi
T_ARRAY_CAST (array) tür çarpıtma
T_AS as foreach
T_ATTRIBUTE #[ Öznitelikler (PHP 8.0.0 ve sonrasında kullanılabilir)
T_BAD_CHARACTER   \t (0x09), \n (0x0a) ve \r (0x0d) hariç, ASCII 32'den küçük herşey (PHP 7.4.0 itibariyle kullanılabilir)
T_BOOLEAN_AND && mantıksal işleçler
T_BOOLEAN_OR || mantıksal işleçler
T_BOOL_CAST (bool) veya (boolean) tür çarpıtma
T_BREAK break break
T_CALLABLE callable callable
T_CASE case switch
T_CATCH catch İstisnalar
T_CLASS class sınıflar ve nesneler
T_CLASS_C __CLASS__ sihirli sabitler
T_CLONE clone sınıflar ve nesneler
T_CLOSE_TAG ?> veya %> HTML'den Kaçmak
T_COALESCE ?? karşılaştırma işleçleri
T_COALESCE_EQUAL ??= atama işleçleri (PHP 7.4.0 itibariyle kullanılabilir.)
T_COMMENT // veya # ve /* */ açıklamalar
T_CONCAT_EQUAL .= atama işleçleri
T_CONST const sınıf sabitleri
T_CONSTANT_ENCAPSED_STRING "foo" veya 'bar' dizge söz dizimi
T_CONTINUE continue continue deyimi
T_CURLY_OPEN {$ karmaşık değişken çözümlemeli sözdizimi
T_DEC -- Arttırım ve Eksiltim İşleçleri
T_DECLARE declare declare
T_DEFAULT default switch
T_DIR __DIR__ sihirli sabitler
T_DIV_EQUAL /= atama işleçleri
T_DNUMBER 0.12, vs. gerçek sayılar
T_DO do do..while
T_DOC_COMMENT /** */ PHPDoc tarzı açıklamalar.
T_DOLLAR_OPEN_CURLY_BRACES ${ Karmaşık (kaşlı ayraçlı) sözdizimi
T_DOUBLE_ARROW => dizi söz dizimi
T_DOUBLE_CAST (real), (double) veya (float) tür çarpıtma
T_DOUBLE_COLON :: Bakınız: T_PAAMAYIM_NEKUDOTAYIM
T_ECHO echo echo
T_ELLIPSIS ... işlev bağımsız değişkenleri
T_ELSE else else
T_ELSEIF elseif elseif
T_EMPTY empty empty()
T_ENCAPSED_AND_WHITESPACE " $a" dizge değişkenlerinde sabit kısım
T_ENDDECLARE enddeclare declare, denetim yapıları için diğer sözdizimi
T_ENDFOR endfor for, denetim yapıları için diğer sözdizimi
T_ENDFOREACH endforeach foreach, denetim yapıları için diğer sözdizimi
T_ENDIF endif if, denetim yapıları için diğer sözdizimi
T_ENDSWITCH endswitch switch, denetim yapıları için diğer sözdizimi
T_ENDWHILE endwhile while, denetim yapıları için diğer sözdizimi
T_ENUM enum Enumerations (PHP 8.1.0 ve sonrasında kullanılabilir)
T_END_HEREDOC   yorumlu metinler
T_EVAL eval() eval()
T_EXIT exit veya die exit(), die()
T_EXTENDS extends extends, sınıflar ve nesneler
T_FILE __FILE__ sihirli sabitler
T_FINAL final final Anahtar Sözcüğü
T_FINALLY finally İstisnalar
T_FN fn ok işlevleri (PHP 7.4.0 itibariyle kullanılabilir.)
T_FOR for for
T_FOREACH foreach foreach
T_FUNCTION function işlevler
T_FUNC_C __FUNCTION__ sihirli sabitler
T_GLOBAL global değişken etki alanı
T_GOTO goto goto deyimi
T_HALT_COMPILER __halt_compiler() __halt_compiler
T_IF if if
T_IMPLEMENTS implements Nesne Arayüzleri
T_INC ++ arttırım ve eksiltim işleçleri
T_INCLUDE include include
T_INCLUDE_ONCE include_once include_once
T_INLINE_HTML   PHP dışı metin
T_INSTANCEOF instanceof tür işleçleri
T_INSTEADOF insteadof Nitelikler
T_INTERFACE interface Nesne Arayüzleri
T_INT_CAST (int) or (integer) tür çarpıtma
T_ISSET isset() isset()
T_IS_EQUAL == karşılaştırma işleçleri
T_IS_GREATER_OR_EQUAL >= karşılaştırma işleçleri
T_IS_IDENTICAL === karşılaştırma işleçleri
T_IS_NOT_EQUAL != or <> karşılaştırma işleçleri
T_IS_NOT_IDENTICAL !== karşılaştırma işleçleri
T_IS_SMALLER_OR_EQUAL <= karşılaştırma işleçleri
T_LINE __LINE__ sihirli sabitler
T_LIST list() list()
T_LNUMBER 123, 012, 0x1ac, vs. tamsayılar
T_LOGICAL_AND and mantıksal işleçler
T_LOGICAL_OR or mantıksal işleçler
T_LOGICAL_XOR xor mantıksal işleçler
T_MATCH match match (PHP 8.0.0 ve sonrasında kullanılabilir)
T_METHOD_C __METHOD__ sihirli sabitler
T_MINUS_EQUAL -= atama işleçleri
T_MOD_EQUAL %= atama işleçleri
T_MUL_EQUAL *= atama işleçleri
T_NAMESPACE namespace isim alanları
T_NAME_FULLY_QUALIFIED \App\Namespace namespaces (PHP 8.0.0 ve sonrasında kullanılabilir)
T_NAME_QUALIFIED App\Namespace namespaces (PHP 8.0.0 ve sonrasında kullanılabilir)
T_NAME_RELATIVE namespace\Namespace namespaces (PHP 8.0.0 ve sonrasında kullanılabilir)
T_NEW new sınıflar ve nesneler
T_NS_C >__NAMESPACE__ isim alanları.
T_NS_SEPARATOR \ isim alanları (PHP 5.3.0 ve sonrasında mevcuttur.)
T_NUM_STRING "$a[0]" dizge içinde sayısal dizi indisi
T_NULLSAFE_OBJECT_OPERATOR ?-> sınıflar ve nesneler
T_OPEN_TAG <?php, <? veya <% HTML'den Kaçmak
T_OPEN_TAG_WITH_ECHO <?= veya <%= HTML'den Kaçmak
T_OR_EQUAL |= atama işleçleri
T_PAAMAYIM_NEKUDOTAYIM :: ::. Ayrıca, T_DOUBLE_COLON olarak tanımlıdır.
T_PLUS_EQUAL += atama işleçleri
T_POW ** aritmetik işleçleri
T_POW_EQUAL **= atama işleçleri
T_PRINT print print
T_PRIVATE private sınıflar ve nesneler
T_PROTECTED protected sınıflar ve nesneler
T_PUBLIC public sınıflar ve nesneler
T_READONLY readonly classes and objects (PHP 8.1.0 ve sonrasında kullanılabilir.)
T_REQUIRE require require
T_REQUIRE_ONCE require_once require_once
T_RETURN return dönüş değerleri
T_SL << bitsel işleçler
T_SL_EQUAL <<= atama işleçleri
T_SPACESHIP <=> karşılaştırma işleçleri
T_SR >> bitsel işleçler
T_SR_EQUAL >>= atama işleçleri
T_START_HEREDOC <<< yorumlu metinler
T_STATIC static değişken etki alanı
T_STRING parent, self, vs. parent ve self gibi anahtar sözcükler, işlev isimleri ve sınıf isimleri gibi belirteçlerle eşleşir. Ayrıca bakınız: T_CONSTANT_ENCAPSED_STRING.
T_STRING_CAST (string) tür çarpıtma
T_STRING_VARNAME "${a karmaşık değişken çözümlemeli sözdizimi
T_SWITCH switch switch
T_THROW Throw İstisnalar
T_TRAIT trait Nitelikler
T_TRAIT_C __TRAIT__ __TRAIT__
T_TRY Try İstisnalar
T_UNSET unset() unset()
T_UNSET_CAST (unset) tür çarpıtma
T_USE use isim alanları
T_VAR var sınıflar ve nesneler
T_VARIABLE $foo değişkenler
T_WHILE while while, do..while
T_WHITESPACE \t \r\n  
T_XOR_EQUAL ^= atama işleçleri
T_YIELD yield üreteçler
T_YIELD_FROM yield from üreteçler

Ayrıca bakınız: token_name().

add a note

User Contributed Notes 2 notes

up
5
nathan at unfinitydesign dot com
15 years ago
T_ENCAPSED_AND_WHITESPACE is whitespace which intersects a group of tokens. For example, an "unexpected T_ENCAPSED_AND_WHITESPACE" error is produced by the following code:

<?php
$main_output_world
= 'snakes!';
echo(
'There are' 10 $main_output_world);
?>

Note the missing concatenation operator between the two strings leads to the whitespace error that is so named above. The concatenation operator instructs PHP to ignore the whitespace between the two code tokens (the so named "encapsed" data"), rather than parse it as a token itself.

The correct code would be:

<?php
$main_output_world
= 'snakes!';
echo(
'There are' . 10 . $main_output_world);
?>

Note the addition of the concatenation operator between each token.
up
-3
fgm at osinet dot fr
15 years ago
T_ENCAPSED_AND_WHITESPACED is returned when parsing strings with evaluated content, like "some $value" or this example from the Strings reference page:

<?php
echo <<<EOT
My name is "$name". I am printing some $foo->foo.
Now, I am printing some
{$foo->bar[1]}.
This should print a capital 'A': \x41
EOT;
?>

This last example is tokenized as:
T_ECHO
echo
T_WHITESPACE
%20 (a space character)
T_START_HEREDOC
<<
T_ENCAPSED_AND_WHITESPACE
My name is "
T_VARIABLE
$name
T_ENCAPSED_AND_WHITESPACE
". I am printing some
T_VARIABLE
$foo
T_OBJECT_OPERATOR
->
T_STRING
foo
T_ENCAPSED_AND_WHITESPACE
. Now, I am printing some
T_CURLY_OPEN
{
T_VARIABLE
$foo
T_OBJECT_OPERATOR
->
T_STRING
bar
(terminal)
[
T_LNUMBER
1
(terminal)
]
(terminal)
}
T_ENCAPSED_AND_WHITESPACE
. This should print a capital 'A': \x41
T_END_HEREDOC
EOT
(terminal)
;
To Top