mirror of
https://github.com/php/doc-tr.git
synced 2026-03-24 07:12:18 +01:00
153 lines
5.4 KiB
XML
153 lines
5.4 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
||
<!-- EN-Revision: 7ba2406e555a240338d63f72d9ac54a46e0bee5d Maintainer: nilgun Status: ready -->
|
||
<sect1 xml:id="language.types.numeric-strings" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||
<title>Sayısal Dizeler</title>
|
||
<para>
|
||
Bir PHP dizesi, <type>int</type> veya <type>float</type> olarak
|
||
yorumlanabiliyorsa sayısal kabul edilir.
|
||
</para>
|
||
|
||
<para>
|
||
Resmi olarak PHP 8.0.0'dan itibaren:
|
||
</para>
|
||
|
||
<informalexample>
|
||
<programlisting>
|
||
<![CDATA[
|
||
WHITESPACES \s*
|
||
LNUM [0-9]+
|
||
DNUM ([0-9]*[\.]{LNUM}) | ({LNUM}[\.][0-9]*)
|
||
EXPONENT_DNUM (({LNUM} | {DNUM}) [eE][+-]? {LNUM})
|
||
INT_NUM_STRING {WHITESPACES} [+-]? {LNUM} {WHITESPACES}
|
||
FLOAT_NUM_STRING {WHITESPACES} [+-]? ({DNUM} | {EXPONENT_DNUM}) {WHITESPACES}
|
||
NUM_STRING ({INT_NUM_STRING} | {FLOAT_NUM_STRING})
|
||
]]>
|
||
</programlisting>
|
||
</informalexample>
|
||
|
||
<para>
|
||
PHP ayrıca <emphasis>öncü</emphasis> sayısal dizeler kavramına sahiptir. Bu,
|
||
sayısal bir dizge gibi başlayan ve ardından herhangi bir karakter gelen bir
|
||
dizedir.
|
||
</para>
|
||
|
||
<note>
|
||
<para>
|
||
Sayılarla sınırlanmış (harfe büyüklüğüne duyarsız) <literal>E</literal>
|
||
harfini içeren herhangi bir dizge, bilimsel gösterimiyle ifade edilen bir
|
||
sayı olarak görülecektir. Bu beklenmedik sonuçlar doğurabilir.
|
||
<programlisting role="php">
|
||
<![CDATA[
|
||
<?php
|
||
var_dump("0D1" == "000"); // yanlış, "0D1" bilimsel gösterim değil
|
||
var_dump("0E1" == "000"); // doğru, "0E1" => 0 * (10 ^ 1), yani 0
|
||
var_dump("2E1" == "020"); // doğru, "2E1" => 2 * (10 ^ 1), yani 20
|
||
?>
|
||
]]>
|
||
</programlisting>
|
||
</para>
|
||
</note>
|
||
|
||
<sect2 xml:id="language.types.numeric-string.conversion">
|
||
<title>Sayısal bağlamlarda kullanılan dizeler</title>
|
||
<para>
|
||
Bir dizenin sayı olarak değerlendirilmesi gerektiğinde (örneğin, aritmetik
|
||
işlemler, <type>int</type> tür bildirimi, vb.), Sonucu belirlemek için
|
||
aşağıdaki adımlar atılır:
|
||
|
||
<orderedlist>
|
||
<listitem>
|
||
<simpara>
|
||
Dize sayısal ise, (<constant>PHP_INT_MAX</constant> tarafından
|
||
tanımlandığı gibi) <type>int</type> türü sınırlarına uyuyorsa ve
|
||
dize bir tamsayı sayısal dizeyse, <type>int</type> olarak çözümlenir,
|
||
aksi takdirde bir <type>float</type> olarak çözümlenir.
|
||
</simpara>
|
||
</listitem>
|
||
<listitem>
|
||
<simpara>
|
||
Bağlam, öncü sayısal dizelere izin veriyorsa ve dize tek ise,
|
||
(<constant>PHP_INT_MAX</constant> tarafından tanımlandığı gibi)
|
||
<type>int</type> türü sınırlarına uyuyorsa ve dizenin baştaki bölümü
|
||
bir tamsayı sayısal dizeyse, <type>int</type> olarak çözümlenir,
|
||
aksi takdirde bir <type>float</type> olarak çözümlenir. Ek olarak
|
||
<constant>E_WARNING</constant> seviyesinde bir hata ortaya çıkar.
|
||
</simpara>
|
||
</listitem>
|
||
<listitem>
|
||
<simpara>
|
||
Dize sayısal değilse, bir <classname>TypeError</classname> yavrulanır.
|
||
</simpara>
|
||
</listitem>
|
||
</orderedlist>
|
||
</para>
|
||
</sect2>
|
||
|
||
<sect2 xml:id="language.types.numeric-string.prior">
|
||
<title>PHP 8.0.0 öncesindeki davranış</title>
|
||
<para>
|
||
PHP 8.0.0 öncesinde, bir dize yalnızca, <emphasis>önünde</emphasis> beyaz
|
||
boşluklar varsa sayısal, <emphasis>sonunda</emphasis> beyaz boşluklar varsa
|
||
öncü sayısal dize olduğu kabul edilirdi.
|
||
</para>
|
||
|
||
<para>
|
||
PHP 8.0.0 öncesinde, bir dize sayısal bir bağlamda kullanıldığında,
|
||
yukarıdaki adımlar aşağıdaki farklılıklarla uygulanırdı:
|
||
<itemizedlist>
|
||
<listitem>
|
||
<simpara>
|
||
Öncü sayısal dize kullanımı <constant>E_WARNING</constant> yerine
|
||
<constant>E_NOTICE</constant> seviyesinde bir hataya sebep olurdu.
|
||
</simpara>
|
||
</listitem>
|
||
<listitem>
|
||
<simpara>
|
||
Dize sayısal değilse, <constant>E_WARNING</constant> seviyesinde
|
||
bir hata ortaya çıkar ve değer olarak <literal>0</literal> dönerdi.
|
||
</simpara>
|
||
</listitem>
|
||
</itemizedlist>
|
||
PHP 7.1.0 öncesinde, ne <constant>E_NOTICE</constant>
|
||
ne de <constant>E_WARNING</constant> seviyesinde bir hata ortaya çıkardı.
|
||
</para>
|
||
|
||
<informalexample>
|
||
<programlisting role="php">
|
||
<![CDATA[
|
||
<?php
|
||
$foo = 1 + "10.5"; // $foo bir float (11.5)
|
||
$foo = 1 + "-1.3e3"; // $foo bir float (-1299)
|
||
$foo = 1 + "bob-1.3e3"; // PHP 8.0.0 sonrasında TypeError, öncesinde int (1)
|
||
$foo = 1 + "bob3"; // PHP 8.0.0 sonrasında TypeError, öncesinde int (1)
|
||
$foo = 1 + "10 Small Pigs"; // $foo bir int (11) ve PHP 8.0.0 sonrasında E_WARNING, öncesinde E_NOTICE
|
||
$foo = 4 + "10.2 Little Piggies"; // $foo bir float (14.2) ve PHP 8.0.0 sonrasında E_WARNING, öncesinde E_NOTICE
|
||
$foo = "10.0 pigs " + 1; // $foo bir float (11) ve PHP 8.0.0 sonrasında E_WARNING, öncesinde E_NOTICE
|
||
$foo = "10.0 pigs " + 1.0; // $foo bir float (11) ve PHP 8.0.0 sonrasında E_WARNING, öncesinde E_NOTICE
|
||
?>
|
||
]]>
|
||
</programlisting>
|
||
</informalexample>
|
||
</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
|
||
-->
|