mirror of
https://github.com/php/doc-tr.git
synced 2026-03-23 23:02:09 +01:00
373 lines
13 KiB
XML
373 lines
13 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
||
<!-- EN-Revision: be039c085ee703d5b1f39837e55081d6e2d55030 Maintainer: nilgun Status: ready -->
|
||
<!-- CREDITS: tpug, sezer -->
|
||
<chapter xml:id="language.constants" xmlns="http://docbook.org/ns/docbook">
|
||
<title>Sabitler</title>
|
||
|
||
<simpara>
|
||
Bir sabit basit bir değerin betimleyicisidir (ismidir). İsminden de
|
||
anlaşılacağı gibi, betiğin çalışması sırasında bu değer değiştirilemez
|
||
(aslında birer sabit olmayan <link
|
||
linkend="language.constants.magic">sihirli sabitler</link>
|
||
hariç). Sabitler harf büyüklüğüne duyarlıdır.
|
||
Geleneksel olarak, sabit isimleri daima büyük harfle yazılır.
|
||
</simpara>
|
||
|
||
<note>
|
||
<para>
|
||
PHP 8.0.0'dan önce, <function>define</function> işlevi kullanılarak
|
||
tanımlanan sabitler harf büyüklüğüne duyarsız olabilir.
|
||
</para>
|
||
</note>
|
||
|
||
<para>
|
||
Bir sabite verilen isim PHP'de varolan diğer tüm isimlerle aynı
|
||
kurallara tabidir. Geçerli bir sabit ismi bir harfle ya da alt çizgi imi
|
||
ile başlar, herhangi bir sayıda harf, rakam ya da alt çizgi ile
|
||
devam eder. Bir sabit ismi düzenli ifade olarak, şu şekilde ifade
|
||
edilebilir:
|
||
<code>^[a-zA-Z_\x80-\xff][a-zA-Z0-9_\x80-\xff]*$</code>
|
||
</para>
|
||
<para>
|
||
Geçersiz ismleri ve PHP kullanımına ayrılmış isimleri
|
||
<function>define</function> işlevi ile tanımlamak mümkünse de bunların
|
||
değeri sadece <function>constant</function> işlevi ile elde edilebilir.
|
||
Ancak, bu tavsiye edilmez.
|
||
</para>
|
||
&tip.userlandnaming;
|
||
<para>
|
||
<example>
|
||
<title> - Geçerli ve geçersiz sabit isimleri</title>
|
||
<programlisting role="php">
|
||
<![CDATA[
|
||
<?php
|
||
|
||
// Geçerli sabit isimleri
|
||
define("FOO", "bir şey");
|
||
define("FOO2", "başka bir şey");
|
||
define("FOO_BAR", "daha başka bir şey");
|
||
|
||
// Geçersiz sabit isimleri
|
||
define("2FOO", "bir şey");
|
||
|
||
// Bu geçerli olmasına rağmen kullanmaktan kaçınılmalıdır.
|
||
// PHP bir gün betiğinizin çalışmasını bozacak bir sihirli
|
||
// sabit kullanmaya karar verebilir.
|
||
define("__FOO__", "bir şey");
|
||
|
||
?>]]>
|
||
</programlisting>
|
||
</example>
|
||
</para>
|
||
<note>
|
||
<simpara>
|
||
Burada bir harften söz ettiğimiz zaman, ASCII a-Z, A-Z ve karakter kodu
|
||
128-255 (<literal>0x80-0xff</literal>) arasındaki bir karakterden bahsetmiş
|
||
oluyoruz.
|
||
</simpara>
|
||
</note>
|
||
|
||
<simpara>
|
||
<link linkend="language.variables.predefined">Süper küresellerde</link>
|
||
olduğu gibi, sabitlerin etki alanı da küreseldir. Sabitlere etki alanı
|
||
dikkate alınmaksızın bir komut dosyasının herhangi bir yerinden
|
||
erişilebilir."Etki alanı" hakkında daha ayrıntılı bilgi edinmek için
|
||
<link linkend="language.variables.scope">Değişken Etki Alanı</link>
|
||
bölümünü okuyunuz.
|
||
</simpara>
|
||
|
||
<note>
|
||
<simpara>
|
||
PHP 7.4.0'dan itibaren, bir sınıf sabitinin görünürlüğü protected
|
||
veya private olarak bildirebilir, bu da onları yalnızca tanımlandığı
|
||
sınıfın hiyerarşik etki alanında kullanılabilir hale getirir.
|
||
</simpara>
|
||
</note>
|
||
|
||
<sect1 xml:id="language.constants.syntax">
|
||
<title>Söz dizimi</title>
|
||
<simpara>
|
||
Bir sabit <function>define</function> işlevi veya
|
||
<literal>const</literal> anahtar sözcüğü kullanılarak tanımlanabilir.
|
||
<function>define</function> bir sabitin rastgele bir ifadede tanımlanmasına
|
||
izin verir. <literal>const</literal> anahtar sözcüğünün ise aşağıdaki
|
||
paragrafta açıklanan bazı kısıtlamaları vardır. Bir sabit tanımlandıktan
|
||
sonra asla değiştirilemez ve tanımsız yapılamaz.
|
||
</simpara>
|
||
<simpara>
|
||
<literal>const</literal> anahtar sözcüğü kullanılırken, yalnızca sayıl
|
||
(<type>bool</type>, <type>int</type>, <type>float</type> ve
|
||
<type>string</type>) ifadeler ve yalnızca sayıl ifadeler içeren sabit
|
||
dizileri kabul edilir. Sabitleri <type>resource</type> olarak tanımlamak
|
||
mümkünse de, umulmadık sonuçlara yol açabileceğinden bundan kaçınılmalıdır.
|
||
</simpara>
|
||
<simpara>
|
||
Bir sabitin değerine basitçe ismi belirtilerek erişilebilir.
|
||
Değişkenlerin aksine, sabitlerin önüne <literal>$</literal> imi
|
||
ekleme<emphasis>ME</emphasis>niz gerekir. Bir sabitin
|
||
ismi dinamik olarak belirtiliyorsa, sabitin değerini okumak
|
||
için <function>constant</function> işlevini kullanmak mümkündür.
|
||
Tanımlanmış sabitlerin tamamının bir listesini almak için,
|
||
<function>get_defined_constants</function> işlevini kullanabilirsiniz.
|
||
</simpara>
|
||
<note>
|
||
<simpara>
|
||
Sabitlerin ve (genel) değişkenlerin isim alanları farklıdır. Bu,
|
||
örneğin &true; ile <varname>$TRUE</varname> değerlerinin farklı
|
||
olabilecekleri anlamına gelir.
|
||
</simpara>
|
||
</note>
|
||
<simpara>
|
||
Tanımlanmamış bir sabit kullanırsanız, bir <classname>Error</classname>
|
||
yavrulanır. PHP 8.0.0 öncesinde, tanımsız sabitler çıplak bir kelime
|
||
dizesi olarak yorumlanır (SABIT yerine "SABIT" gibi). PHP 7.2.0 ve
|
||
sonrasında bu kullanım önerilmemekte olup böyle bir durumda bir
|
||
<constant>E_WARNING</constant> çıktılanır. PHP 7.2.0 öncesinde ise <link
|
||
linkend="ref.errorfunc">E_NOTICE</link> seviyesinde bir hata çıktılanırdı.
|
||
Ayrıca <link linkend="language.types.array.foo-bar">$foo[bar]</link>'ın
|
||
(bar bir sabit olmadıkça) neden yanlış olduğuna dair açıklamaya da bakın.
|
||
Bu durum, tanımlanmadıkları takdirde daima bir <classname>Error</classname>
|
||
yavrulayan <link linkend="language.namespaces.rules">(tamamen) nitelenmiş
|
||
sabitlere</link> uygulanmaz.
|
||
</simpara>
|
||
|
||
<note>
|
||
<simpara>
|
||
Bir sabitin atanıp atanmadığına bakmak için <function>defined</function>
|
||
işlevini kullanın.
|
||
</simpara>
|
||
</note>
|
||
|
||
<para>
|
||
<emphasis>Sabitler ve değişkenler arasındaki farklar:</emphasis>
|
||
<itemizedlist>
|
||
<listitem>
|
||
<simpara>
|
||
Bir sabit ismi <literal>$</literal> imi ile başlamaz.
|
||
</simpara>
|
||
</listitem>
|
||
<listitem>
|
||
<simpara>
|
||
Sabitler, değişken etki alanı kurallarına bağlı olmaksızın her yerde
|
||
tanımlanabilir ve her yerden erişilebilir.
|
||
</simpara>
|
||
</listitem>
|
||
<listitem>
|
||
<simpara>
|
||
Sabitler tanımlandıktan sonra yeniden tanımlanamaz ya da tanımsız
|
||
duruma getirilemez.
|
||
</simpara>
|
||
</listitem>
|
||
<listitem>
|
||
<simpara>
|
||
Bir sabit sadece sayıl değerlere veya dizilere çözümlenebilir.
|
||
</simpara>
|
||
</listitem>
|
||
</itemizedlist>
|
||
</para>
|
||
|
||
<para>
|
||
<example>
|
||
<title>- Sabitlerin Tanımlanması</title>
|
||
<programlisting role="php">
|
||
<![CDATA[
|
||
<?php
|
||
define("CONSTANT", "Merhaba dünya.");
|
||
echo CONSTANT; // "Merhaba dünya" çıktılar.
|
||
echo Constant; // Hata verir: Tanımlanmamış sabit "Constant"
|
||
// PHP 8.0.0 öncesinde. "Constant" çıktılanıp bir uyarı verilirdi.
|
||
?>
|
||
]]>
|
||
</programlisting>
|
||
</example>
|
||
</para>
|
||
|
||
<para>
|
||
<example>
|
||
<title>- Sabitlerin <code>const</code> ile tanımlanması</title>
|
||
<programlisting role="php">
|
||
<![CDATA[
|
||
<?php
|
||
// Basit sayıl değer
|
||
const SABIT = 'Merhaba Dünya';
|
||
|
||
echo SABIT;
|
||
|
||
// Sayıl ifade
|
||
const DIGER_SABIT = SABIT.'; Elveda Dünya';
|
||
echo DIGER_SABIT;
|
||
|
||
const HAYVANLAR = array('köpek', 'kedi', 'kuş');
|
||
echo HAYVANLAR[1]; // "kedi" çıktılanır
|
||
|
||
// Sabit dizisi
|
||
define('HAYVANLAR', array(
|
||
'köpek',
|
||
'kedi',
|
||
'kuş'
|
||
));
|
||
echo HAYVANLAR[1]; // "kedi" çıktılanır
|
||
?>
|
||
]]>
|
||
</programlisting>
|
||
</example>
|
||
</para>
|
||
|
||
<note>
|
||
<para>
|
||
Sabitlerin <function>define</function> kullanılarak tanımlanmasının tersine,
|
||
<literal>const</literal> anahtar sözcüğü ile tanımlanan sabitler derleme
|
||
sırasında tanımlandıklarından en üst seviye etki alanında bildirilmiş
|
||
olmalıdır. Yani bunlar işlevlerin, döngülerin, <literal>if</literal>
|
||
deyimlerinin veya <literal>try</literal>/<literal>catch</literal>
|
||
bloklarının içinde bildirilemez.
|
||
</para>
|
||
</note>
|
||
|
||
<sect2 role="seealso">
|
||
&reftitle.seealso;
|
||
<para>
|
||
<simplelist>
|
||
<member><link linkend="language.oop5.constants">Sınıf
|
||
Sabitleri</link></member>
|
||
</simplelist>
|
||
</para>
|
||
</sect2>
|
||
</sect1>
|
||
|
||
<sect1 xml:id="language.constants.predefined">
|
||
<title>Öntanımlı Sabitler</title>
|
||
|
||
<simpara>
|
||
PHP, çalışan her betiğe çok sayıda <link
|
||
linkend="reserved.constants">öntanımlı sabit</link> sağlar. Öte
|
||
yandan, bu sabitlerin çoğu, çeşitli eklentiler tarafından
|
||
tanımlandığından, sadece eklenti bir modül olarak veya PHP içinde
|
||
derlenmişse kullanılabilir.
|
||
</simpara>
|
||
</sect1>
|
||
|
||
<sect1 xml:id="language.constants.magic">
|
||
<title>Sihirli Sabitler</title>
|
||
<para>
|
||
Değerleri kullanıldıkları yere göre değişen dokuz sihirli sabit vardır.
|
||
Örneğin, <constant>__LINE__</constant> sabitinin değeri betiğin hangi
|
||
satırında kullanıldığına bağlıdır. Çalışma zamanında çözümlenen sırada
|
||
sabitlerin tersine "sihirli" sabitlerin tamamı derleme sırasında çözümlenir.
|
||
Bu özel sabitler büyük-küçük harf farkına duyarsızdır ve aşağıda
|
||
listelenmişlerdir:
|
||
</para>
|
||
<para>
|
||
<table>
|
||
<title>PHP'nin sihirli sabitleri</title>
|
||
<tgroup cols="2">
|
||
<thead>
|
||
<row>
|
||
<entry>&Name;</entry>
|
||
<entry>&Description;</entry>
|
||
</row>
|
||
</thead>
|
||
<tbody>
|
||
<row xml:id="constant.line">
|
||
<entry><constant>__LINE__</constant></entry>
|
||
<entry>
|
||
Dosyada geçerli satırın numarası.
|
||
</entry>
|
||
</row>
|
||
<row xml:id="constant.file">
|
||
<entry><constant>__FILE__</constant></entry>
|
||
<entry>
|
||
Dosyanın veya sembolik bağdan çözümlenen dosyanın tam dosya yolu ve
|
||
dosya ismi. <function>include</function> işlevi ile betiğe eklenen bir
|
||
dosyanın içinde kullanıldığında betiğin ismini değil, eklenen dosyanın
|
||
ismini içerir.
|
||
</entry>
|
||
</row>
|
||
<row xml:id="constant.dir">
|
||
<entry><constant>__DIR__</constant></entry>
|
||
<entry>
|
||
Dosyanın bulurduğu dizin. Dahil edilen bir dosyanın içinde
|
||
kullanıldığında dahil edilen dosyanın dizini döner. Bu
|
||
<literal>dirname(__FILE__)</literal> işlevine eşdeğerder. Bu dizin
|
||
isminin sonuna bir kök dizin olmadıkça bir bölü imi konmaz.
|
||
</entry>
|
||
</row>
|
||
<row xml:id="constant.function">
|
||
<entry><constant>__FUNCTION__</constant></entry>
|
||
<entry>
|
||
İşlev ismi veya anonim işlevler için <literal>{closure}</literal>.
|
||
</entry>
|
||
</row>
|
||
<row xml:id="constant.class">
|
||
<entry><constant>__CLASS__</constant></entry>
|
||
<entry>
|
||
Sınıf ismi. Bildirildiği isim alanını
|
||
(<literal>Foo\Bar</literal> gibi) içerir. Kalıtsal özelliklerin içinde kullanıldığında __CLASS__, içinde kullanıldığı sınıfın ismidir.
|
||
</entry>
|
||
</row>
|
||
<row xml:id="constant.trait">
|
||
<entry><constant>__TRAIT__</constant></entry>
|
||
<entry>
|
||
Kalıtsal özellik ismi. Bildirildiği isim alanını
|
||
(<literal>Foo\Bar</literal> gibi) içerir.
|
||
</entry>
|
||
</row>
|
||
<row xml:id="constant.method">
|
||
<entry><constant>__METHOD__</constant></entry>
|
||
<entry>
|
||
Yöntem ismi.
|
||
</entry>
|
||
</row>
|
||
<row xml:id="constant.namespace">
|
||
<entry><constant>__NAMESPACE__</constant></entry>
|
||
<entry>
|
||
Geçerli isim alanının adı.
|
||
</entry>
|
||
</row>
|
||
<row xml:id="constant.coloncolonclass">
|
||
<entry><constant><replaceable>SınıfAdı</replaceable>::class</constant></entry>
|
||
<entry>
|
||
Tamamen nitelenmiş sınıf ismi.
|
||
</entry>
|
||
</row>
|
||
</tbody>
|
||
</tgroup>
|
||
</table>
|
||
</para>
|
||
|
||
<sect2 role="seealso">
|
||
&reftitle.seealso;
|
||
<para>
|
||
<simplelist>
|
||
<member><link linkend="language.oop5.basic.class.class">::class</link></member>
|
||
<member><function>get_class</function></member>
|
||
<member><function>get_object_vars</function></member>
|
||
<member><function>file_exists</function></member>
|
||
<member><function>function_exists</function></member>
|
||
</simplelist>
|
||
</para>
|
||
</sect2>
|
||
</sect1>
|
||
</chapter>
|
||
|
||
<!-- Keep this comment at the end of the file
|
||
Local variables:
|
||
mode: sgml
|
||
sgml-omittag:t
|
||
sgml-shorttag:t
|
||
sgml-minimize-attributes:nil
|
||
sgml-always-quote-attributes:t
|
||
sgml-indent-step:1
|
||
sgml-indent-data:t
|
||
indent-tabs-mode:nil
|
||
sgml-parent-document:nil
|
||
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
|
||
sgml-exposed-tags:nil
|
||
sgml-local-catalogs:nil
|
||
sgml-local-ecat-files:nil
|
||
End:
|
||
vim600: syn=xml fen fdm=syntax fdl=2 si
|
||
vim: et tw=78 syn=sgml
|
||
vi: ts=1 sw=1
|
||
-->
|