PHP Veri Türüne Komple Kılavuz: Sayılar, Boolean, String & Amp;Başka

Biz buradayız, wpShout’ta, WordPress’in geliştirilmesiyle ilgilenen herkesin PHP’de tam hıza girmesini sağlayan tam ücretli kurslar yapmak için çok düşünüyoruz.Ve şimdiye kadar sitede, en önemli iki PHP verisini, nesneyi ve dizi türlerini tartıştık.Ancak, bu dersin fikrini düşünürken, dilin sahip olduğu daha basit veya “ilkel” “skaler” veri türünü hiç tartışmadığımızı fark ediyorum.Ayrıca PHP veri türünün ne olduğunu ayrıntılı olarak tartışmadık.Birçok programcı (ben dahil) bunları böyle kabul etmeyi kolay buluyor.Ancak bu durumda tamamen yeniyseniz, diğer insanların zaman içinde sizi açıkça tökezleyeceğini düşündüğü şeyler ve detayları küstah insanlara sormakta zorlanacaksınız.Dolayısıyla, çok kibirli olmamak için, PHP veri türlerini derinlemesine içeren bu metni tartışacağız.
Ne tür PHP verileri?”Tür” terimi, genel olarak dil tarafından bilinen şeylerin türlerini ayırt etmek için kullanılır “Tür” terimi, PHP veya diğer programlama dilleri hakkında konuşurken, dil tarafından bilinen şeylerin türlerini ayırt etmek için kullanılır.Bazı diller her türlü nesneyi yapar, bu nedenle “ilkel” veri türü yoktur.Bu, PHP’de, oldukça düşük olan C dil seviyesinden yukarıda ve üstünde inşa edilmiş dildir.PHP, bazıları çok büyülü ve Gotcha’ya eğilimli olan tiple çok fazla çalışma yapıyor.(Ayrıntılar için aşağıdaki “Tip Hokkabazlık” a bakın.) “Temel tip” dediğimizde, tüm mantık akışları için yararlı olan bir kavramsal kategori türüdür: sayılar, boolean (doğru ve yanlış) ve “String” veya karakter sırası veya karakter sırası.Her birini her biri daha ayrıntılı olarak gireceğiz, ancak önce biraz daha kafa karıştırıcı türlerden birine dönün.
Nulls mevcut değildir, oldukça kısa, null daha somut bir şey eksikliğinin kısaltmasıdır. Programlamayı incelediğinizde, hatta kaçındığınızda, genellikle bu “null” şeyi duyacaksınız. Null, birçok nedenden dolayı gariptir ve bu makalede yapmak istemediğim “hafıza işaretçisi” adı verilen şeyler hakkında bazı büyük ayrıntıları tartışmadan anlamak zordur. Kısacası, Null daha somut bir şey eksikliğinin kısaltmasıdır. PHP’de değişken, aynı işaret olan bir = tarafından tanımlanır. Birçok programlama dilinde olduğu gibi, bu eşitlik değil bir “görev” dir. PHP’deki eşitlik, işaretin eşit olduğu iki veya üç (== veya ===) ile belirtilir veya test edilir. (Daha sonra.) Sıfıra dönün. Bir değişken çağrılırsa ancak somut bir değere ayarlanmamışsa, örtük değer nulldur, bu da değer eksikliğini gösterir. Şimdilik bilmeniz gereken bu. Bunu sadece zaman zaman ilkel veri türleri ve PHP’deki değişkenleri belirlemenin temelleri ile çalışmaya çalışırsanız göreceksiniz, bu yüzden anlamı tartışmak istiyorum. “Skaler” PHP tipleri dört tür skaler vardır: Boolean, tamsayı, yüzen nokta sayıları ve teller. Skaler nedir? Kelimenin birçok anlamı var, ancak bizim için bulduğum en iyi tanım Wikipedia’da:
Bir seferde sadece bir değer depolayabilen atom miktarı, burada kastettiğimiz, sadece bir şeyi temsil edebileceğimizdir. Bu, aynı anda birçok sayı, dizeyi vb. Depolama alanları ve nesneler gibi “bileşik” veri türünden farklıdır. PHP, bir değerin dört temel türden biri olup olmadığını test eden bir IS_SCAtar işlevine sahiptir. Hem S dizisinin veya nesne veya null’un (veya sonunda dokunacağımız kaynakların) bu test için gerçek değeri üretmediğini lütfen unutmayın. Ama şimdi doğru olana gidelim. Boolean true/ilk php skaler türünden biri boolean. Eğer bir mantık dersi aldıysanız, dünyayı zaten bilebilirsiniz. Eğer düşünebilirseniz, konsepti zaten kullanıyorsunuz. Boolean sadece gerçek veya yanlış bir değerdir. Mantıkta, temelde doğru veya yanlış bulunabilecek bir iddia olan “boole ifadesi” veya “öneri formülü” hakkında konuşuyoruz. Çoğu web programlama (ve diğer çoğu tür) bir dizi uzun ve çekici öneri oluşturmaya yol açar. Bu yüzden doğru ve yanlış PHP’de ve dünyayla nasıl ilişki kurduğumuzda oldukça temeldir. Ayrıca insanların bu değerleri PHP koduna zaman zaman doğru veya doğru olarak yazdığını göreceksiniz. Boolean (ve neredeyse hepsi) ile bağlantılı olarak PHP, büyük harflerin kullanımını affetmek için yeterlidir. Yani tüm bunlar aynı sayıda öneri.
Son olarak, insanların bu Boolean’ı ikili bir sayı yapmasının da yaygın olduğunu unutmayın. Bunu yaptıklarında, genellikle false 0 ve doğru olarak 1 olarak ele alırlar. Aslında, 0 PHP’de Boolean değil, “Tip Hokkabazlık” ı tartışırken göreceğimiz gibi, bu dil aynı şekilde tedavi etmekten mutluluk duyar. Sayı! PHP’nin iki türü vardır, bilgisayarda PHP numarasının matematikte tartıştığımız türden farklı olması için birkaç önemli yolu vardır. Tıpkı hemen hemen her insan düşüncesinin doğru ve yanlış kabul ettiği gibi, genellikle böyle sayıları kabul ederiz. Bugün çoğu insan “sayılır” (okuryazar sayılar) bu yüzden sadece PHP’nin sayılarla nasıl çalıştığını anlamak meselesidir. Bilgisayarda PHP sayılarının matematikte tartıştığımız türden farklı olmasının bazı önemli yolları vardır. Mesele şu ki, PHP çok farklı iki sayı türünü anlıyor: tamsayılar (tamsayılar) ve ondalık sayılar (kayan noktalar). Tamsayı çoğumuzun ilk çalışma tamsayılarına ulaştığımızda bir tamsayıdır ve sadece iki haneye ulaşmaya başladığımızda, eğitimciler bizi (örneğin) 1 ve 2 arasındaki değere ciddi şekilde tanıtırlar. Programdaki birçok şey için sadece 1 ve 2. Bu, bilgisayarların tamsayılarla çalışması için çok hızlı ve etkilidir. Böylece mümkün olduğunca, PHP’de tamsayılar kullanın. Ve yine, tür hokkabazlık yaptığı için, çoğu kullanım için, “tamsayılar” ve “yüzen” arasındaki fark hakkında çok fazla endişelenmenize gerek yok.
Kayan noktalar (deneme) Tamsayı gibi değil ondalık değeri temsil eden bilgisayar, ondalık matematik üzerinde çalışmada çok verimli değildir. (Bu şekilde, genç insanlardan farklı değildirler.) Erken bilgisayar bilimcileri, ondalık matematik yapmada bilgisayarları çok daha verimli hale getirme olasılığını bulurlar, ancak matematiksel doğruluktan biraz fedakarlık gerektirirler. Bu yüzden PHP’nin gerçekten bir “ondalık sayı” yapmadığını, daha ziyade “yüzer noktayı” kullandığını gösteriyorum. Null gibi, yüzen nokta matematiğinin altında yatan sistem ve mantık bu makalenin kapsamı dışındadır. Kayan nokta matematiğine 0.2 ve 0.1 eklediğinizde, 0.3 değil 0.30000000000000004 elde ettiğinizi bilin. Ancak diğer hesaplamaların çoğunu yaptığınızda, beklediğiniz şeyi elde edersiniz. 0.2 + 0.3 beklendiği gibi 0.5 üretir. Bu tür bir hata, PHP’nin ondalık sayıları ele alma şekli olan yüzen nokta matematiğinin olağandışı ama gerçek bir sınırıdır.
Genel olarak, ondalık rakamlarla yaptığınız hesaplamaların% 90’ından fazlası için, yüzen nokta matematiği iyidir. En sık beklediğiniz şeyi tam olarak elde edersiniz ve çok nadiren kesirlerdeki bu hata ortaya çıkar. Ancak bu kesir, PHP’de yüzen önemli yollardan biridir, okulda öğrendiğiniz basit ondalık matematikten farklıdır. Çok hassas para işlemleri dışında her şey için, PHP numaralarını basit bir ondalık matematikmiş gibi kullanmak iyi olacaksınız. Bilim sınıfında öğrendiğiniz gibi önemli sayılar, yüzen nokta matematiği ile bile 0.2 + 0.1 ila 0.3 yapar. Ancak insanların dolar ve sentleri temsil etmek için ondalık kullanma fikrine karşı çıktıklarını gördüyseniz, belki şimdi nedenini anlayacaksınız. Son PHP skaler türü bir iptir. “Dize” sadece herhangi bir karakterin sırasıdır. PHP’de, dilin tırnak işaretleriyle bir birlik olarak ele alınması için istediğiniz karakterlerin sırasını bağlamanız gerekir, böylece bunlara göre hareket etmemesi gerektiği söylenebilir. PHP’deki dizelere karşı çitin geçerli ve yaygın bir yoludur. İkisi arasında ince bir fark vardır, çift tırnakların çoğu daha fazla ezoterik işlemlere izin verir. ve heredoc’lar, kaçış değişkenleri ve özel karakterler için diziler, tek bir tırnak dizesinde görüntülendiğinde genişletilmeyecektir.
Ancak her iki durumda da, bu gerçekten geçerli olan PHP’dir: $ mystring = ‘Bu bir cümle.’; $ html = ”
paragrah !!!
“; Heredoc ve Nowdoc’un PHP’deki sözdizimi oldukça nadirdir, bu yüzden tanımlamayacağım, ancak anlamak istiyorsanız belgelerin bağlantısını kontrol edin. “Bileşik türleri” Yukarıda bahsettiğimiz gibi, birleşik PHP tipi karmaşık programlar için daha gerçek ve önemlidir ve genellikle skaler tipi üzerine inşa edilmiştir. PHP’de birleştirilmiş dört tür dizi dizi, nesneler, çağrılabilir ve yinelenebilir. Özellikle PHP’de yeni olduğunuz için, ilk iki tür son ikiden çok daha önemlidir. Dizi PHP dizisi hakkında uzun yazdım. Onlar için yeniyseniz, Makaleye bakın: PHP Array Yönetici Özeti Kapsamlı Giriş, Okumak İçin Çok Tembel olan veya zaten bilenler için: Array S PHP, çeşitli türlerin (veya karışık) bir listesidir veya bir veri toplamadır. “Anahtar Değer Çiftleri”, “İlişkili Dizi” olarak adlandırılır.
Dirsek braketleri $ liste = [1, ‘iki’, 3] ile tanımlanır; PHP 5.4 ve üstünde veya 5.3 ve altındaki dizi işlevinde ().

Nesne Benzer şekilde, PHP nesnelerine tam bir giriş yazdım: WordPress geliştiricileri için nesne yönelimli PHP’ye giriş ve yine referanslar için önemli noktalar: önemli noktalar:
PHP nesnesi, daha sonra nesneye “yüklenen” sınıfı tanımlayarak başlar.
Nesne özelliği (dahili değişken) skaler veya PHP veri türlerinin bir kombinasyonu olabilir. Oklarla erişilir -> $ obj-> özelliği.

Nesnenin işlevine “yöntem” denir ve $ obj-> yöntem () olarak erişilir.
Çağrılabilir çağrılar temel olarak tanımında yer alan anahtar kelime işlevi olan herhangi bir şeydir. Bunu ayrıntılı olarak tartışmayacağız, ancak diğer PHP veri türleri çağrılabilir olarak bilinen şeydir. Bu, temelde tanımında yer alan anahtar kelime işlevine sahip her şey olan benzersiz bir veri türüdür. Şimdiye kadar bahsettiğimiz gibi, nesne yöntemi çağrılabilir. Benzer şekilde, küresel ad alanındaki genel prosedür işlevi veya saf PHP. PHP’de, çağrılabilecek anonim işlevleri (ad işlevleri olmadan) da tanımlayabilirsiniz. Global olarak adlandırılabilecek işlevin adına uygun dize, PHP’nin çağrılabilir istediği her yerde de kullanılabileceğine dikkat edilmelidir. WordPress kodu en çok yazılır, Applic_filter veya Add_action ile ikinci argüman olarak çağırabilecek işlevinizin adını alır. (Bu, WordPress kancaları, eylemler ve filtreler için ortak isimler hakkında daha kapsamlı bir tanıtımımızdır.) Ancak PHP ve WordPress de diğer çağrı türleriyle de çalışabilir. Yinelemeler çoğunlukla, yinelenebilir bir kombine tip olan PHP türlerine giriş ile ilgisizdir, ancak belgelere bağlanmaz. Bunun ilgili bir belge olacağına inanıyorum, bu da bunun yeni bir PHP 7.1 ve daha yüksek bir tür olduğunu gösteriyor. Böylece, bunu WordPress ile alakasız olarak düşünebiliriz. Jeneratör adı verilen bir şey onun kullanımıdır. Harika bir fikir olduğunu düşünmeme rağmen hiç bir jeneratör yazmadım. Hokkabazlık veya zorlama yazın
PHP, diğer birçok “zayıf” dil gibi, bazen iki farklı değer türünü karşılaştırma ihtiyacı vardır. Örneğin, genellikle birisi PHP’deki $ değişkenin doğru olup olmadığını soran bir kod yazar, ancak değişkenin 5 gibi bir değeri olabilir veya ‘bu bir dize’. Bu durumda ne olmalı? Burası “hokkabazlık türü” girer. Kısacası, PHP’ye katı veya gevşek eşitliği incelemek istediğinizi söylediğinize bağlıdır. PHP’de (ve JavaScript) bu farkı, daha gevşek bir denklem (==) ve sıkı için üç (===) ile aynı iki işaretle ifade edersiniz. Ve sonuçlar bu seçime göre değişir. Bunu çoğunlukla IF gibi karar yapılarıyla buluyoruz. Bu kodu düşünün: $ değişken = true; if ($ değişken === 1) {do_something (); } Do_something () işlevi yukarıdaki kodda mı çağrıldı? Değil! Do_somet bir şey neden olmaz? Çünkü PHP’nin türünü “zorlamaması” veya “çevirmemesi” gerektiğini belirliyoruz. Böylece, gerçek tip ve tip 1 farklı olduğunda durur. (Birincisi boolean, ikincisi tamsayılardır.) İkincisi, tip farklı olduğu için tamamen aynı olamaz. Tersine, === to == yaparsak Do_something çalışır. Çünkü 1, PHP tarafından Boolean olarak “döküm tipi” ve gerçekleştiğinde. True === true, bu yüzden doğru oluruz ve kod çalıştırılır. İşte PHP: 0 == Yanlış’da gevşek bir karşılaştırma ile sizi şaşırtabilecek küçük bir liste; // true ‘1’ == 1; // doğru ‘
10 köpek ‘== 10;// true ’10 köpekler ‘== true;// true true == 167;// Karmaşıklık olasılığından kaçınmak için diğer seçiminiz sadece sıkı eşitliğe (===) dayanmaktadır.PHP tipi hokkabazlıktan nasıl beklenmedik sonuçlar göreceğiniz hakkında daha fazla bilgi edinebilirim.Ama bence noktaya geliyorsun:
Bir şeyin farklı bir türü olduğunda, PHP yardımcı olmak için aynı türde olmaya çalışır. PHP’nin ne yaptığını yeterince düşünmediğinizde bu sizi şaşırtabilir. PHP tarafından yürütülen döküm türleri (veya zorlama) birkaç farklı şekilde yapabilirsiniz. En yaygın iki yol, $ integer = (int) $ değeri ve döküm işlevi gibi görünen Tür talimatları olarak adlandırılır, bu da $ integer = aralık ($ değeri). Her ikisi de oldukça yaygındır ve çoğu veri türü tek yöne atılabilir. Karmaşıklık olasılığından kaçınmak için diğer seçiminiz sadece her zaman sıkı eşitliğe (===) dayanır. Bu, Douglas Cockford tarafından JavaScript programcıları için onlarca yıldır yapılan bir öneri ve en sık kullandığım bu. Son olarak, bütünlük için bir kaynak veri türü var, ilk olarak tartıştığımız NULL ile birlikte PHP’nin özel bir kaynak veri türüne sahip olduğundan bahsetmek zorunda hissediyorum. On yıldan fazla bir süredir PHP yazdım, kullandığımda bile bu veri türü hakkında çok fazla düşünmedim. (Ve bu tür, iteralden farklı olarak, PHP’deki en eskilerinden biridir.) Temel olarak, dosyaları okuduğunuzda veya veritabanına MySQL (i) _ işleviyle bağlandığınızda, kaynak türü değişkenleri göndereceksiniz. Bu aslında diğer değişkenlerden çok farklıdır, ancak pratik olarak sadece türü düşünmediğiniz bir değişken olarak devam edersiniz. En azından bu benim için doğru. :

admin

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir