BilgisayarlarProgramlama

PHP Uygulama: dize karşılaştırması

PHP iyi bilgi işleme odaklanmıştır. Dilin sözdizimi karşılaştırma fonksiyonları, string işleme, karşılaştırma operatörleri tamamen işlevsel bir set temsil edilir.

Herhangi algoritma - seçimler ve eylemler dizisi. Eğer bir seçim yapmak Ama hepsinden önce bir şeyle karşılaştırmak için bir şey gerekiyor. Çizgi - en geniş, verimli ve pratik algoritma kontrol mekanizması. Çizgi - veri sunumun bir varyantı. Bir veri - bu herhangi algoritmanın "bakım" ana konusunu oluşturmaktadır.

Sıradan mantık "karşılaştırma-eylem"

Genellikle, dinamik yazarak dil böyle bir PHP karşılaştırma hattı gibi verilerde hiçbir farkları yapar ve numara çok farklı değil. Sayı - bu sadece sayı, nokta içeriyor ve herhangi bir biçimde (matematiksel gösterimde) sayıları temsil etmek için kullanılmayan bir tek karakter yokken aynı zamanda bir dizedir.

kontenkatsii numarası otomatik hattı ile birleştirir ise, hiçbir soru sordu ve hiçbir gizli hataları bile gettype () işlevi 'tamsayı' veya 'çift' verir.

Bununla birlikte, is_int () ve is_numeric kullanarak arasında bir fark yoktur (). İlk parametre herhangi bir sayı ya da sayısal dizge (değişken türü 'dizge', ancak tüm Resim matematiksel gösterim içerir) olduğunda, ikinci bir tamsayıdır olduğu zaman, doğruyu vermektedir.

Bu basit bir örnek - Bir PHP dizge karşılaştırma operatörleri (! '==' '===' ... '=') birçok sürpriz sunmak Can nasıl iyi bir örnektir. değişkenler her zaman rakamlar değildir, onların türünü değiştirebilir, ancak hemen hemen her zaman onlar hattı yol açabilir. Aşırı durumda - bu boş bir dize olacaktır.

Yukarıdaki dayanarak, bir PHP dize karşılaştırması işlevi en popüler. Tam olarak seçmek ne, geliştirici karar vermek. Normal ifadeler kadar mevcut seçenekler çok.

Mevcut fonksiyonel sınırları

İki satır PHP karşılaştırılması) işlevi strpos ( "do" iyidir - sadık ve pratik bir seçenek, en ucuz. Eğer sonucu fonksiyon sayısı, daha sonra açıkça bir dize diğerine veya bir kısmına eşittir.

Radikal zıt değil, aynı zamanda kesinlikle doğru bir yaklaşım - Normal ifadelerin kullanılması.

Fonksiyon $ cResult = scCheckFileName ($ cStr) 'true' verir, sonra hat dosya vordovsky adıdır. '_' Sadece harf, rakam ve karakter '-': Sadece bir genişleme '.docx' seçeneğini ve adını hiçbir karakter olacaktır.

fonksiyon kolayca diğer dosya türlerine dönüştürülebilir: $ cPtr = '/^([a-zA-Z...0-9\-\_]{4,239})\.(html|js|css|png|jpg | docx | txt) {1} $ / u'. Bu varyant html (örneğin PHP dizge karşılaştırma "Giriş hatası olma ihtimali, bir sunucuya dosya yüklemek için" uygulanır) aralık tarama çizgisi indirilebilir uzanır js, css, ...

strpos () ve preg_match () kullanma - aşırı. Bunlar doğrudan karşılaştırma döneminin konuyla ilgili değildir. Ama algoritmanın soru - tarzı bir arada kullanarak meselesi, bütün fırsatların kullanılması güvenilir ve doğru sonucu elde etmektir.

Fonksiyonel PHP: dize karşılaştırması

Arsenal dil karşılaştırıldığında dizeleri - saf, sadece karşılaştırma fonksiyonu, aynı zamanda doğrudan arama veya yerine bir kombinasyonu. hep ikincisi mutlaka her satırda bir değişikliğe yol açmaz, çünkü karşılaştırma denk olmalıdır hareket değil. Genellikle bir ya da algoritmanın diğer dalı seçmek zorunda.

Normal varyant PHP: string karşılaştırma fonksiyonu int strcmp gerçekleştirir (s1, s2).

fonksiyonunun sonucu:

  • 0 - hattı eşittir;
  • 1 - ilk dize saniyeden daha azdır;
  • 1 - ikinci sırada daha önce daha fazla.

Uygulamada, bu PHP fonksiyonu (karşılaştırma satırlar) karar olan ikinci ilk satır, parçası anlamına gelmektedir. strpos () Bir daha sınırlı versiyonu ikinci durumda mümkün olduğu için giriş konumunu bilmek.

strcmp () işlevi - duyarlı. Eğer dize duyarsız karşılaştırmak istiyorsanız, PHP onun strcasecmp sunmaktadır (). sözdizimi benzer.

Uygulamada genellikle bütün hattı ile değil çalışmak için gerekli, ancak bunun sadece bir parçasıdır. işlevleri kümesinde için PHP (string karşılaştırma) (s1, s2, K) strncmp dahil. Üçüncü parametre yalnızca N-bayt karşılaştırma yapmak belirtir. Sonuç benzer strcmp () 'dir.

Diziler, dizeleri ve karşılaştırma

Bunlar hemen hemen her zaman dizeleri ile temsil edilmektedir. Biz diziler, nesneler veya veri yapılarını ele alırsak, bu basit dize yapılarının kombinasyonlarının sadece farklı varyantları bu.

Yaylı dizileri ve satırları tamamlayıcı şekilde temin edilebilir. örneğin, bir dizi işlevi implode içine dizisi (dizi, sembol) transformasyonu,: $ margins1 = hareket ederler ( '', $ tarzı-> getInnerMargin ()); ... algoritması / kullanıcı ...; $ Margins2 = hareket ederler ( '', $ stil-> getInnerMargin ()) Eğer dize pozisyonunda nesnenin pozisyonunun tüm birleştirme sağlar.

Daha sonra PHP dize karşılaştırma yapmak ve bir seferde yapabilirsiniz: $ çek = strcmp ($ margins1, $ margins2) ve emin olun algoritma veya bir şeyler değişti (veya değil) olan kullanıcı. Eğer normal şekilde bir karşılaştırma gerçekleştirirseniz, dizi elemanlarını sıralamak gerekir. Bu daha uzun sürer ve daha karmaşıktır.

Nesneler ve çizgi

Daha da muhteşem kullanım PHP (dize karşılaştırmaları) nesne yönelimli fikirleri aracılığıyla uygulanabilir.

tesislerin, modern fikir, özelliklerini ve yöntemlerini sahip olduğunu göstermektedir. Eski genellikle sayılar, dizeleri, diziler ve diğer nesneler tarafından temsil edilir. ikincisi genellikle geri kazanım hortumuna ve hattından kayıt teknikleri (koyun) (olsun) içerir.

Dizilerin aksine, nesne, kendi özellikleri ile çalışır ve diğer nesneler ile etkileşime girer. Nesne özellikleri bir bütün olarak programın algoritması için gerçek değer olduğu "yetkin".

Bu an bir temel ve bir karakter dizisinin yalnızca gerekli bilgileri kaydederken kayıt imkanı sağlar ve hattın kurtarma istenen devletin bütün çalışma özelliklerini kazanacak şekilde. Genellikle, herhangi bir nesnenin önemli bilgiler ve çalışma (zamanı) vardır. Bu fikrin uygulanması değil sadece bellek, disk alanı, veritabanı kaydını kaydetmek için izin verir, ama aynı zamanda mümkün çizgiler daha basit ve doğru araçları karşılaştırmak mümkün kılar.

Sözdizimi ve Anlambilim

PHP dinamik gelişiyor ve işlevselliği hem sürekli karşılaştırarak dizeleri açısından ve bunların tedavi açısından geliştirilmiş. Ancak, hiçbir şey semantik alanında ağırlık merkezini taşımak için bir geliştirici engeller.

Kuşkusuz, işlevsellik iyidir, ancak kullanımı nesnelerin kod anlamında aktarılabilir. Algoritma nesneler arasındaki etkileşimin bir sistem olarak takdim edildiğinde, doğrudan dizi, klasik tarzda dizi karşılaştırmaları ve eylemler çok daha iyi görünüyor.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

Copyright © 2018 unansea.com. Theme powered by WordPress.