<?php
$string = 'test';
echo preg_match('/te(?# comments)st/', $string) . "\n";
echo preg_match('/te#~~~~
st/', $string) . "\n";
echo preg_match('/te#~~~~
st/x', $string) . "\n";
// result
// 1
// 0
// 1
(?# dizilimi sonraki kapatan yaylı ayraca kadar devam eden bir açıklamanın başlangıcını belirtir. İç içe açıklamalara izin verilmez. Açıklama olarak imlenmiş parçalar şablonun yorumlanan parçaları olarak ele alınmazlar.
Eğer PCRE_EXTENDED seçeneği etkinse, şablon içinde, bir karakter sınıfının dışındaki öncelenmemiş bir # karakteri sonraki satırsonu karakterine kadar devam eden bir açıklamanın başlangıcı olarak ele alınır.
Örnek 1 PCRE şablonunda açıklama kullanımı
<?php
$subject = 'test';
/* (?# açıklama eklemek için PCRE_EXTENDED etkinleştirilmeden kullanılabilir
*/
$match = preg_match('/te(?# this is a comment)st/', $subject);
var_dump($match);
/* Boşluklar ve # PCRE_EXTENDED etkin olmadıkça şablonun parçası olarak
* ele alınır
*/
$match = preg_match('/te #~~~~
st/', $subject);
var_dump($match);
/* PCRE_EXTENDED etkin olduğunda, verideki tüm boşluk karakterleri ve
* aynı satırdaki öncelenmemiş # karakterinden sonraki herşey yok sayılır.
*/
$match = preg_match('/te #~~~~
st/x', $subject);
var_dump($match);
Yukarıdaki örneğin çıktısı:
int(1) int(0) int(1)
<?php
$string = 'test';
echo preg_match('/te(?# comments)st/', $string) . "\n";
echo preg_match('/te#~~~~
st/', $string) . "\n";
echo preg_match('/te#~~~~
st/x', $string) . "\n";
// result
// 1
// 0
// 1