1
0
mirror of https://github.com/php/doc-tr.git synced 2026-04-28 09:23:23 +02:00
Files
2025-02-24 23:27:49 +03:00

225 lines
7.0 KiB
XML
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: f908fff129bcd8ec1605658e06457cb04e5b2b51 Maintainer: nilgun Status: ready -->
<sect1 xml:id="language.types.type-system">
<title>Tür Sistemi</title>
<para>
PHP, davranışsal alt tür ilişkileri ile güçlendirilmiş sembolik bir tür
sistemi kullanır. Alt türlerle ilişkiler derleme sırasında sınanırken
türlerin doğrulanması çalışma anında dinamik olarak gerçekleştirilir.
</para>
<para>
PHP'nin tür sistemi, daha karmaşık türler oluşturmak için bir araya
getirilebilecek çeşitli temel türleri destekler. Bu türlerden bazıları
<link linkend="language.types.declarations">tür bildirimleri</link>
olarak yazılabilir.
</para>
<sect2 xml:id="language.types.type-system.atomic">
<title>Temel türler</title>
<para>
Bazı temel türler, dille sıkı bir şekilde bütünleşmiş yerleşik türler
olup kullanıcı tanımlı türlerle yeniden türetilemez.
</para>
<para>
Temel türler:
<itemizedlist>
<listitem>
<simpara>Yerleşik türler</simpara>
<itemizedlist>
<listitem>
<simpara>
Sayıl türler:
</simpara>
<itemizedlist>
<listitem>
<simpara><type>bool</type> türü</simpara>
</listitem>
<listitem>
<simpara><type>int</type> türü</simpara>
</listitem>
<listitem>
<simpara><type>float</type> türü</simpara>
</listitem>
<listitem>
<simpara><type>string</type> türü</simpara>
</listitem>
</itemizedlist>
</listitem>
<listitem>
<simpara><type>array</type> türü</simpara>
</listitem>
<listitem>
<simpara><type>object</type> türü</simpara>
</listitem>
<listitem>
<simpara><type>resource</type> türü</simpara>
</listitem>
<listitem>
<simpara><type>never</type> türü</simpara>
</listitem>
<listitem>
<simpara><type>void</type> türü</simpara>
</listitem>
<listitem>
<simpara>
<link linkend="language.types.relative-class-types">Göreli sınıf türleri</link>:
<type>self</type>, <type>parent</type>, <type>static</type>
</simpara>
</listitem>
<listitem>
<simpara>
<link linkend="language.types.singleton">Tekil türler</link>
</simpara>
<itemizedlist>
<listitem>
<simpara><type>false</type></simpara>
</listitem>
<listitem>
<simpara><type>true</type></simpara>
</listitem>
</itemizedlist>
</listitem>
<listitem>
<simpara>
Birim türleri
</simpara>
<itemizedlist>
<listitem>
<simpara><type>null</type></simpara>
</listitem>
</itemizedlist>
</listitem>
</itemizedlist>
</listitem>
<listitem>
<simpara>
Kullanıcı tanımlı türler (genelde sınıf türleri olarak bilinir)
</simpara>
<itemizedlist>
<listitem>
<simpara><link linkend="language.oop5.interfaces">Arayüzler</link></simpara>
</listitem>
<listitem>
<simpara><link linkend="language.oop5.basic.class">Sınıflar</link></simpara>
</listitem>
<listitem>
<simpara><link linkend="language.types.enumerations">Sayılamalar</link></simpara>
</listitem>
</itemizedlist>
</listitem>
<listitem>
<simpara><type>callable</type> türü</simpara>
</listitem>
</itemizedlist>
</para>
<sect3 xml:id="language.types.type-system.atomic.scalar">
<title>Sayıl türler</title>
<simpara>
<type>int</type>, <type>float</type>, <type>string</type> veya
<type>bool</type> türündeki değerler sayıl olarak kabul edilir.
</simpara>
</sect3>
<sect3 xml:id="language.types.type-system.atomic.user-defined">
<title>Kullanıcı tanımlı türler</title>
<simpara>
Özel türleri <link linkend="language.oop5.interfaces">arayüzler</link>,
<link linkend="language.oop5.basic.class">sınıflar</link> ve
<link linkend="language.types.enumerations">sayılamalar</link> ile
tanımlamak mümkündür. Bunlar kullanıcı tanımlı türler veya sınıf türleri
olarak kabul edilir. Örneğin, <literal>Fil</literal> adında bir sınıf
tanımlanabilir, ardından <literal>Fil</literal> türündeki nesneler
örneklenebilir ve bir işlev <literal>Fil</literal> türünde bir bağımsız
değişken isteyebilir.
</simpara>
</sect3>
</sect2>
<sect2 xml:id="language.types.type-system.composite">
<title>Birleşim türleri</title>
<para>
Temel türleri birleşik türler halinde birleştirmek mümkündür.
PHP, türlerin aşağıdaki şekillerde birleştirilmesine izin verir:
</para>
<itemizedlist>
<listitem>
<simpara>
Sınıf türlerinin (arayüz ve sınıf isimlerinin) kesişimi.
</simpara>
</listitem>
<listitem>
<simpara>
Tür birleşimleri.
</simpara>
</listitem>
</itemizedlist>
<sect3 xml:id="language.types.type-system.composite.intersection">
<title>Tür kesişimleri (&amp; ile birleşim)</title>
<para>
Tür kesişiminde, tek bir sınıf yerine birden çok sınıf türü bildirimine
karşılık gelen değerler kabul edilir. Kesişimi oluşturan tekil
türler &amp; simgesi ile birleştirilir. Örneğin, <literal>T</literal>,
<literal>U</literal> ve <literal>V</literal> türlerinden oluşan bir
tür kesişimi <literal>T&amp;U&amp;V</literal> biçeminde yazılır.
</para>
</sect3>
<sect3 xml:id="language.types.type-system.composite.union">
<title>Bileşik türler (| ile birleşim)</title>
<para>
Bileşik tür (union), tek bir değer yerine birden fazla türde değer kabul eder.
Bileşik türü oluşturan tekil türler <literal>|</literal> simgesi ile
birleştirilir. Örneğin, <literal>T</literal>, <literal>U</literal> ve
<literal>V</literal> türlerinden oluşan bir bileşik tür
<literal>T|U|V</literal> biçeminde yazılır. Türlerden biri kesişim
içeriyorsa, kesişimin yaylı ayraçlar arasına alınması gerekir:
<literal>T|(X&amp;Y)</literal>.
</para>
</sect3>
</sect2>
<sect2 xml:id="language.types.type-system.alias">
<title>Tür takma adları</title>
<para>
PHP iki tür-takma-adı destekler:
<literal>object|resource|array|string|float|int|bool|null</literal>
karşılığı olarak <type>mixed</type> ve
<literal>Traversable|array</literal> karşılığı olarak
<type>iterable</type>.
</para>
<note>
<simpara>
PHP kullanıcı tanımlı tür takma adlarını desteklemez.
</simpara>
</note>
</sect2>
</sect1>
<!-- 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
-->