PHP veri yapıları ve algoritmalar için iyi mi?
Öğrenmek için evet, tek bir alışkanlığı bıraktığında: her iş için hemen bir array kullanmak. PHP'nin dizisi liste, sözlük ve stack olabilecek kadar esnektir ve her işlemin maliyetini gizleyen de tam olarak budur. Yapıları kendin kurduğunda PHP, algoritmalar üzerine düşünmek için gayet iyi bir dildir; işin PHP ise mülakata girmek için de doğal dil odur.
Hangi SPL sınıfı hangi veri yapısına karşılık gelir?
SplStack ve SplQueue bir stack ve bir kuyruktur, ikisi de SplDoublyLinkedList üzerine kurulu; SplMinHeap ve SplMaxHeap heap'lerdir; SplPriorityQueue önceliğe göre sıralanan bir max-heap'tir; SplFixedArray ise tam sayı indeksli, bir array'den daha az bellek kullanan sabit boyutlu bir dizidir. Düz array senin hash tablondur. Ağaç, trie ya da graf sınıfı yok; onları birinci ve ikinci adımlarda kendin yazarsın.
PHP'de array_shift kuyruk için neden yavaş?
Çünkü ilk elemanı çıkardıktan sonra kalan her tam sayı anahtarı sıfırdan yeniden numaralandırır ve bu da tüm diziye dokunur: array_shift üzerine kurulu bir kuyruk, her çıkarmada O(n), boşaltılması için de karesel zaman harcar. Bunun yerine SplQueue kullan ya da dizide bir baş indeksi tutup onu ilerlet. Birinci adımda bir kuyruğu kendin kurarsın; farkı görmenin en kesin yolu da bu.
PHP'de sort() kararlı mı?
PHP 8.0'dan beri evet: sort(), usort(), asort() ve diğer sıralama fonksiyonları eşit elemanları özgün sıralarında tutar. 8.0'dan önce böyle bir söz vermiyorlardı, bu yüzden eşit elemanların sırasına dayanan kod sürümler arasında farklı davranabiliyordu. Üçüncü adımdaki sekiz sıralamadan merge sort ve insertion sort kararlıdır, quicksort ve heap sort değildir; o adımdan sonra nedenini bilirsin.
Bu yoldaki hangi kurslar PHP ile anlatılmıyor?
Üç kurs: Python ile anlatılan dinamik programlama ve Python mülakat serisi, C++ ile anlatılan bit işlemleri. Adımlardan sonra listelenirler ve her birinin bağlantısı onu kendi dilinde açar. PHP'de bir memo tablosu, alt probleme göre anahtarlanan bir array olur. Bit hilelerini aktarırken bir tuzak var: &, | ya da ^ operatörlerinin iki operandı da string ise PHP karakterlerinin bayt değerleri üzerinde çalışır ve bir string döndürür; bu yüzden önce değerlerin tam sayı olduğundan emin ol.
Bu yola başlamadan önce PHP bilmem gerekiyor mu?
En azından fonksiyonlar, diziler, döngüler ve sınıflar, çünkü bir düğüm doğal olarak $next özelliği olan bir nesnedir. Bunlar sana yeniyse, Coddy'nin PHP kursu seni önce oraya ücretsiz olarak getirir ve bu yol onun bittiği yerden devam eder.