tpug Thu Dec 13 11:22:04 2001 EDT Added files: /phpdoc/tr/language expressions.xml Log: complete translation by Alper
Index: phpdoc/tr/language/expressions.xml +++ phpdoc/tr/language/expressions.xml <?xml version="1.0" encoding="iso-8859-9"?> <!-- $Revision: 1.1 $ --> <chapter id="language.expressions"> <title>İfadeler</title> <simpara> İfadeler PHP'nin en önemli yapı taşıdır. PHP'de yazdığınız herşey bir ifadedir. İfadelerin en yalın fakat en doğru anlatımı, "değeri olan her şey"dir. </simpara> <simpara> İfadelerin en temel şekilleri sabitler ve değişkenlerdir. "$a = 5" yazdığınızda, '5'i $a'ya atarsınız. '5', kolaylıkla görüldüğü üzere değer olarak 5'tir, başka deyişle '5' değeri 5 olan bir ifadedir (bu durumda, '5' tam sayı sabittir). </simpara> <simpara> Bu atamadan sonra, $a'nın değerinin de 5 olmasını beklersiniz, yani $b = $a yazarsanız, bunun sanki $b = 5 yazmışsınız gibi çalışmasını beklersiniz. Başka deyişle, $a da değeri 5 olan bir ifadedir. Herşey yolunda giderse, bu kesin hatlarıyla oluşacak durumdur. </simpara> <para> İfadelerin biraz daha karmaşık örnekleri fonksiyonlardır. Örneğin, şu fonksiyonları ele alalım: <informalexample> <programlisting role="php"> <![CDATA[ function foo () { return 5; } ]]> </programlisting> </informalexample></para> <simpara> Fonksiyon kavramına aşina olduğunuzu varsayarsak (eğer değilseniz fonksiyonlarla ilgili bölüme bakınız), <literal>$c = foo()</literal> yazdığınızda <literal>$c = 5</literal> yazmışsınız gibi olmasını beklersiniz, ve haklısınız. Fonksiyonlar geri dönüş değerleri değerindeki ifadelerdir. foo() 5 döndürdüğü, 'foo()' ifadesinin değeri 5'tir. Genellikle fonksiyonlar böyle durağan değerler döndürmek yerine bir şeyleri hesaplarlar. </simpara> <simpara> <!-- dirge: floating point => kayan noktalı --> <!-- dirge: composite => bileşik --> Doğal olarak, PHP'deki değerler tam sayı olmak zorunda değildir, ve çoğu zaman değillerdir. PHP 3 çeşitli sayıl değerleri destekler: tam sayı değerler, kayan noktalı sayılar, dizgiler (sayıl değerler daha küçük parçalara 'ayrıştıramayacağınız' değerlerdir, örneğin dizileri ayrıştırabilirsiniz). PHP ayrica iki çeşit bileşik (sayıl olmayan) değer destekler: diziler ve nesneler. Bu değer çeşitlerinin her biri değişkenlere atanabilir ya da fonksiyonlarca döndürülebilir. </simpara> <simpara> Buraya kadar, PHP/FI 2 kullanıcıları bir değişiklik hissetmemiş olmalı. Halbuki, PHP ifadeleri çok daha ilerilere taşır, başka bir çok programa dilinin yaptğı gibi. PHP ifadelere dayalı bir dildir, herşeyin bir ifade olduğu fikri etrafına kurulmuştur. Daha önce göz attığımız örneği ele alalım, '$a = 5'. Burada iki değerin yer aldığını görmek kolay, tam sayı sabit olan '5'in değeri ve 5' olarak değiştirilen $a'nın değeri. Ama gerçek şu ki burada yer alan bir değer daha var, bu da atama işleminin kendi değeri. Atamanın kendisi atanan değeri alır, burada 5. Gerçek hayatta, ne yaptığı önemli olmadan, '$a = 5', 5 değerindeki bir ifadedir. Bu sebepten, '$b = ($a = 5)' yazmakla '$a = 5; $b = 5;' yazmak aynıdır (noktalı virgüller ifade sonunu belirtir). Atamalar sağdan sola gerçekleştiğinden, isterseniz '$b = $a = 5' de yazabilirsiniz. </simpara> <simpara> <!-- dirge: pre-increment => ön-artırım --> <!-- dirge: post-increment => son-artırım --> İfadeye dayalı olmanın başka iyi bir örneği de ön- ve son-artırım ve azaltımdır. PHP/FI 2'nin ve başka pek çok dilin kullanıcıları değişken++ ve değişken-- yazımına aşina olacaktır. Bunlar artırım ve azaltım işlemleridir. PHP/FI 2'de, '$a++' bildiriminin hiç bir değeri yoktu (ifade değildi), bu sebepten bunu atayamazdınız veya başka şekilde kullanamazdınız. PHP bunları, C'deki gibi, ifadelere çevirerek artırım/azaltım kabiliyetlerini geliştirdi. PHP'de, C'de olduğu gibi, iki çeşit artırım vardır - ön-artırım ve son-artırım. Hem ön-artırım hem son-artırımın değişken değerini artırması kesindir, ve değişken üzerindeki etkileri birbiriyle aynıdır. Aralarındaki fark, artırım ifadesinin değeridir. '++$değişken' olarak yazılan ön-artırımın değeri artırılan değer kadardır (PHP değişkenin değerini okumadan önce artırır, bu sebepten ismi ön-artırım'dır). '$değişken++' olarak yazılan son-artırımın değeri $değişken'in orijinal değeri kadardır, artırılmadan önceki (PHP değişkenin değerini okuduktan sonra artırır, bu sebepten ismi 'son-artırım'dır). </simpara> <simpara> İfadelerin çok yaygın bir biçimi karşılaştırma ifadeleridir. Bu ifadeler, &false; ya da &true; anlamına gelen 0 ya da 1 değerlerinden birini alır. PHP > (büyüktür), >= (büyük eşittir), == (eşittir), != (eşit değildir), < (küçüktür), ve <= (küçük eşittir) karşılaştırma işlemlerini destekler. Bu ifadeler genellikle koşullu çalıştırmalarda kullanılır, örneğin <literal>if</literal> bildirimleri gibi. </simpara> <simpara> İfadelerin burada ele alacağımız son örneği bileşik işlem-atama ifadeleri. $a'yı 1 artırmak istediğinizde basitçe '$a++' ya da '++$a' yazacağınızı biliyorsunuz. Peki ya daha fazla artırmak isterseniz, örneğin 3 kadar? Birkaç defa '$a++' yazabilirsiniz, fakat bunun etkin ya da konforlu bir yöntem olmadığı muhakkak. Çok daha yaygın bir yöntem '$a = $a + 3' yazmaktır. '$a + 3', $a artı 3 değerini alır, ve $a'ya yazılır, bu da $a'nın 3 kadar artırılması demektir. PHP'de ve C gibi daha birçok dilde, bunu daha kısa bir yolla yazabilirsiniz, zamanla daha açık ve anlaşılabilir olacak bir yolla. $a'nın o anki değerine 3 eklemek '$a += 3' olarak yazılabilir. Bu tam olarak "$a'nın değerini al, buna 3 ekle, ve tekrar $a'ya yaz" demektir. Daha açık ve anlaşılır olmasının yanında daha hızlı da çalışır. '$a += 3'ün değeri, sıradan bir atamanın değeri gibi, atanan değerdir. Dikkat edin ki bu 3 değildir, $a artı 3'ün birleşmiş değeridir ($a'ya atanan değer budur). Her iki-parçalı işlem bu işlem-atama kipinde kullanılabilir, örneğin '$a -= 5' ($a'nın değerinden 5 eksilt), '$b *= 7' ($b'nin değerini 7 ile çarp), vs. </simpara> <para> <!-- dirge: ternary => ternary --> Başka dillerde görmediyseniz garip gelebilecek bir ifade daha var, ternary koşulu işlemi: <informalexample><programlisting> <![CDATA[ $ilk ? $ikinci : $üçüncü ]]> </programlisting></informalexample> Eğer ilk alt-ifadenin değeri &true; ise (0 değilse), ikinci alt-ifade çalıştırılır, ve bu koşullu ifadenin sonucudur. Değilse, üçüncü alt-ifade çalıştırılır, ve değer budur. </para> <para> Aşağıdaki örnek size, ön- ve son-artırım işlemlerini ve ifadeleri genel olarak biraz daha iyi anlamanızda yardımcı olacaktır: <informalexample> <programlisting role="php"> <![CDATA[ function double($i) { return $i*2; } $b = $a = 5; /* $a ve $b'ye 5 değerini ata */ $c = $a++; /* son-artır, $a'nın orjinal değerini (5) $c'ye ata */ $e = $d = ++$b; /* ön-artır, $b'nin artırılmış değerini (6) $d ve $e'ye ata */ /* bu noktada $d ve $e 6'ya eşit */ $f = double($d++); /* $d'nin iki katını artırımdan <emphasis>önce</emphasis>, 2*6 = 12, $f'ye ata */ $g = double(++$e); /* $e'nin iki katını artırımdan <emphasis>sonra</emphasis>, 2*7 = 14, $g'ye ata */ $h = $g += 10; /* önce, $g 10 artırılır 24 olur. Sonra, atamanın değeri (24) $h'ye atanır, ve $h'de 24 olur. */ ]]> </programlisting> </informalexample> </para> <simpara> Bölümün başında çeşitli bildirimleri anlatacağız demiştik, ve söz verdiğimiz gibi, ifadeler de bildirim olabilir. Fakat, her ifade bir bildirim değildir. Bu durumda, bildirim 'ifade' ';' şeklindedir, yani noktalı virgülle izlenen bir ifadedir. '$b=$a=5;'te, $a=5 geçerli bir ifadedir, fakat kendi başına bir bildirim değildir. Fakat '$b=$a=5;', geçerli bir bildiridir. </simpara> <simpara> Bahsedilmesi gereken son bir nokta, ifadelerin doğruluğudur. Birçok olayda, özellikle koşullu çalıştırımlarda ve döngülerde, ifadenin kesin değeri ile değil, &true; veya &false; olduğuyla ilgilenirsiniz. <!-- (PHP doesn't have a dedicated boolean type) : WRONG, php does. --> <!-- dirge: type-casting => tür dönüşümleri --> &true; ve &false; (büyük/küçük harf ayrımı yok) sabitleri, mümkün olan iki boole değerdir. Gerekli olduğunda bir ifade otomatik olarak boole değerine çevrilir. Bunun hakkında daha fazla bilgi için <link linkend="language.types.typecasting">tür dönüşümleri</link> bölümüne bakınız. </simpara> <simpara> <!-- dirge: expr => expr --> PHP'deki ifade uygulaması tam ve çok güçlüdür, ve tamamiyle açıklanması bu el kitabının sınırları dışındadır. Yukarıdaki örnekler size ifadelerin ne olduğu ve işe yarar ifadeleri nasıl oluşturacağınız konusunda fikir vermiştir. Bu el kitabının içinde her türlü geçerli PHP ifadesini kastetmek için <replaceable>expr</replaceable> yazacağız. </simpara> </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 sgml-parent-document:nil sgml-default-dtd-file:"../../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 -->