• 29-11-2020, 12:18:41
    #1
    Şuan yaptığım yazılım autoload ile çalışıyor yani sınıflar otomatik yükleniyor ve genelde sınıflar bir öz sınıftan miras alarak bir birinden bağımsız yazılıyor. Bir yükleyici sınıfım var ama bunu başlatmak için new classname demem gerekiyor bazı okuduğum yerlerde eğer sınıf içinde ki methodları kullanmayacaksanız. Obje oluşturmayın diyor. Obje oluşturmazsam kullanmamın bildiğim kadarı ile tek yolu classname::load() bu tarzda olacak. Ama static method içinde normal method çağıramadığım için doğal olarak diğer methodlarıları da laod() içinde kullanabilmek için onları da static yapmam gerekiyor veya laod() da geri dönüp laod()->start() tarzında bir şey yapmam gerekiyor. Peki static olarak yazmam ile normal olarak yazmam arasında yazım farklılıkları dışında sistemi etkileyebilecek şeyler var mı? Bir çok ingilizce yazı okudum ama hepsi farklı şeyler diyor kafam allak bullak oldu. Bunlar PHP sürümlerinde de farklılık gösteriyormuş.
  • 29-11-2020, 12:34:27
    #2
    Hocam public function açtığınız zaman Class:: kullanımı yapamazsınız diğer dosyalardan erişmenin tek yolu class'ı başlatıp $class->fonksiyon(); şeklinde bir kullanım yapmanız. Statik fonksiyonlar classı başlatmadan çağrılabilir işleme sokulabilir sadece dosyayı çağırarak Class::Fonksiyon şeklinde. Protect de var buda direk dışarı dosyalardan erişime izin vermiyor. Static kullanırsanız aynı zamanda içinde $this-> yerine self:: kullanmalısınız.
  • 29-11-2020, 12:40:51
    #3
    alperdursun adlı üyeden alıntı: mesajı görüntüle
    Hocam public function açtığınız zaman Class:: kullanımı yapamazsınız diğer dosyalardan erişmenin tek yolu class'ı başlatıp $class->fonksiyon(); şeklinde bir kullanım yapmanız. Statik fonksiyonlar classı başlatmadan çağrılabilir işleme sokulabilir sadece dosyayı çağırarak Class::Fonksiyon şeklinde. Protect de var buda direk dışarı dosyalardan erişime izin vermiyor. Static kullanırsanız aynı zamanda içinde $this-> yerine self:: kullanmalısınız.
    Yorumunuz için çok teşekkürler ama onları biliyorum dediğim gibi yazım farklılıkları dışında sistemin işleyişine performansına vb etkisi nedir. Yani okuduğum yazıda içinde ki methodu kullanmayacaksanız obje oluşturma diyordu bende kullanmıyorum o zaman new classname yerine classname::load() olarak başlattım ama diğer methodlar normal olduğu için onları load() içinde çağıramıyorum normal olarak diğerlerini de static yapıyorum benim demek istediğim normalden kullanım ve yazım farklılıkları dışında bir farkı işlevi etkisi var mı?
  • 29-11-2020, 12:41:29
    #4
    Statik metodlar ve değişkenker bellekte kayıtta kalır. Yazım farklılığı, asıl farklılığı değildir yani.
  • 29-11-2020, 12:44:21
    #5
    burak2yilmaz adlı üyeden alıntı: mesajı görüntüle
    Statik metodlar ve değişkenker bellekte kayıtta kalır. Yazım farklılığı, asıl farklılığı değildir yani.
    Evet onu biliyorum ama ingilizcem zayıf olduğundan okuduğum içerikler kafamı karıştırmaktan başka işe yaramadı biri diyor static daha hızlı diğeri diyor normal daha hızlı biri diyor eğer içinde ki methodları kullanmayacaksan bir obje türetme diyor e obje türetmeden ana sınıfı ancak içinde bir static method ile başlatırım ama o zaman diğer normalleri çağıramıyorum onları da static yapmam gerekiyor veya ilk başlayan static methodda geri dönüp harici bir normal merhod ile diğerlerini başlatabilirim. Yani bellekte tutuluyor onu da biliyorum ama bunun sisteme etkisi ne performans vb şeylerden yani static kullanmışım normal kullanmışım diyelim bana static kullanma normal kullan dedirtecek bir sebep var mı? Ben bunu arıyorum.
  • 29-11-2020, 12:47:01
    #6
    OOP ile ilgili Türkçe kaynak çok fazla var. Dil fark etmeksizin, diğer dillere de bakabilirsiniz. Genelde yazım farklılıkları dışında OOP mantığı aynıdır. Aradığınız tüm soruların cevapları OOP’de.
  • 29-11-2020, 12:50:46
    #7
    burak2yilmaz adlı üyeden alıntı: mesajı görüntüle
    OOP ile ilgili Türkçe kaynak çok fazla var. Dil fark etmeksizin, diğer dillere de bakabilirsiniz. Genelde yazım farklılıkları dışında OOP mantığı aynıdır. Aradığınız tüm soruların cevapları OOP’de.
    İşte okuduğum ve izlediklerim bana yetmediği için sadece staticiki "::" böle normali "->" böle kullanırız dedikleri için hani benim bilmek istediklerimi anlatan bulamadığım için ingilizce arıyorum zaten Türkçe de çok aradım ama işin daha çok kullanım tarafını anlatıyorlar o yüzden bilmek istediklerimi ingilizce olarak arıyorum aslında çok basit aradığım şu bana static kullanma normal kullan dedirtecek bir sebep var mı? Bu yani aradığım. Eğer sebep yoksa ha normal kullanmışım ha static.
  • 29-11-2020, 13:00:00
    #8
    Dostum OOP’i anlamadan neyi, nerede, nasıl kullanacağını nereden bileceksin Önce OOP’i anla, sonra statik mi normal metod mu onun ayrımını yap. Sana kullanımını gösteriyorlar internette diyorsun ve bu normal olanı zaten. Sen kullanımını öğreneceksin sonra ihtiyacına göre statik mi normal mi onun ayrımını yapacaksın. Eğer bu konularda bilgi sahibi olmazsan senin için çok bir farkı yok statik mi normal metod mu ayrımının. Önce OOP