lostyazilim

Küçük bir php sorusu

9 Mesajlar 993 Okunma
lstbozum
wmaraci reklam

bjlkl bjlkl WM Aracı Kullanıcı
  • Üyelik 22.01.2014
  • Yaş/Cinsiyet 29 / E
  • Meslek Bilgisayar Mühendisi
  • Konum İstanbul Avrupa
  • Ad Soyad B** C**
  • Mesajlar 1843
  • Beğeniler 269 / 263
  • Ticaret 1, (%100)
class x{
const version=1.01;
public function getversion(){
return self::version;
}
}
echo x::getversion();

yukarıdaki şekilde çağırdağımız fonksiyonda ilk önce hata verip sonra da yazdırma işlemini yapıyor. bunu düzeltmek için ille de public static function olarak mı tanımlama yapmamız gerekiyor? bir de private ve protected fonksiyonlar için de static kullanılabilir mi?
 

 

wmaraci
reklam

kramper kramper <?php echo "hi world!" ?> Kullanıcı
  • Üyelik 29.01.2014
  • Yaş/Cinsiyet 34 / E
  • Meslek Yazılım &amp; SEO
  • Konum İzmir
  • Ad Soyad M** B**
  • Mesajlar 1197
  • Beğeniler 56 / 168
  • Ticaret 37, (%100)
Hata kodu vermemesi için başına @ koyunuz
 

 

bjlkl bjlkl WM Aracı Kullanıcı
  • Üyelik 22.01.2014
  • Yaş/Cinsiyet 29 / E
  • Meslek Bilgisayar Mühendisi
  • Konum İstanbul Avrupa
  • Ad Soyad B** C**
  • Mesajlar 1843
  • Beğeniler 269 / 263
  • Ticaret 1, (%100)

kramper adlı üyeden alıntı

Hata kodu vermemesi için başına @ koyunuz


Peki protected static function ya da private static function diye fonksiyonlar üretebiliyor muyuz. Yoksa sadece public icin mi
 

 

kramper kramper <?php echo "hi world!" ?> Kullanıcı
  • Üyelik 29.01.2014
  • Yaş/Cinsiyet 34 / E
  • Meslek Yazılım &amp; SEO
  • Konum İzmir
  • Ad Soyad M** B**
  • Mesajlar 1197
  • Beğeniler 56 / 168
  • Ticaret 37, (%100)

bjlkl adlı üyeden alıntı

Peki protected static function ya da private static function diye fonksiyonlar üretebiliyor muyuz. Yoksa sadece public icin mi

Neyi korumaya çalışıyorsunuz? Fonksiyonu mu?
 

 

wmaraci
wmaraci

bjlkl bjlkl WM Aracı Kullanıcı
  • Üyelik 22.01.2014
  • Yaş/Cinsiyet 29 / E
  • Meslek Bilgisayar Mühendisi
  • Konum İstanbul Avrupa
  • Ad Soyad B** C**
  • Mesajlar 1843
  • Beğeniler 269 / 263
  • Ticaret 1, (%100)

kramper adlı üyeden alıntı

Neyi korumaya çalışıyorsunuz? Fonksiyonu mu?


Evet simdi extend class üretyik diyelim
Bir class a var
Bir de class b extends a olsun
a classındaki protected functionları protected static function olarak tanımlayabilir miyim. Kullanılan bir şey mi
 

 

YazilimMimari YazilimMimari Eski adi: Turgay Can Kullanıcı
  • Üyelik 25.06.2012
  • Yaş/Cinsiyet 38 / E
  • Meslek Engineering Director
  • Konum İstanbul Avrupa
  • Ad Soyad T** C**
  • Mesajlar 771
  • Beğeniler 2 / 260
  • Ticaret 0, (%0)

bjlkl adlı üyeden alıntı

Evet simdi extend class üretyik diyelim
Bir class a var
Bir de class b extends a olsun
a classındaki protected functionları protected static function olarak tanımlayabilir miyim. Kullanılan bir şey mi


welcome to object oriented principles :)

kullanabilirsiniz tabikide fakat inheritance(kalıtım) 'tan yararlanmak istemenizin sebebi nedir?

self:: olarak yazılan şey kanımca java'daki this'e tekabül etmektedir. O an işlem yapılan sınıf demek oluyor bununda kullanımı genelde aynı isimdeki metodu yada değişkeni soyut bir sınıftan türemiş birden fazla alt sınıflarda hangisi üzerinde işlem yaptığını anlamaya yarar.

Eğer bu değer bu sınıftan extends(kalıtım) alcak her alt sınıf için aynı ise self:: olayına gerek yok. direkt return ettir gitsin sonucta sabit bir değer?

++ metodunda statik olmasına gerek yok.
 

 

https://www.linkedin.com/in/turgaycan/
Kaliteli kod yazılır.. (Günlük/Saatlik ücreti ile)

bjlkl bjlkl WM Aracı Kullanıcı
  • Üyelik 22.01.2014
  • Yaş/Cinsiyet 29 / E
  • Meslek Bilgisayar Mühendisi
  • Konum İstanbul Avrupa
  • Ad Soyad B** C**
  • Mesajlar 1843
  • Beğeniler 269 / 263
  • Ticaret 1, (%100)

Turgay Can adlı üyeden alıntı

welcome to object oriented principles :)

kullanabilirsiniz tabikide fakat inheritance(kalıtım) 'tan yararlanmak istemenizin sebebi nedir?

self:: olarak yazılan şey kanımca java'daki this'e tekabül etmektedir. O an işlem yapılan sınıf demek oluyor bununda kullanımı genelde aynı isimdeki metodu yada değişkeni soyut bir sınıftan türemiş birden fazla alt sınıflarda hangisi üzerinde işlem yaptığını anlamaya yarar.

Eğer bu değer bu sınıftan extends(kalıtım) alcak her alt sınıf için aynı ise self:: olayına gerek yok. direkt return ettir gitsin sonucta sabit bir değer?

++ metodunda statik olmasına gerek yok.


şu anda öğrenme aşamasındayım. oop ye merak sardım daha düzenli bir şekilde kodlama yapabilmek için php sürümlerinin bazısında $this->name gibisinden kullanılırken de yeni sürümlerde tavsiye etmiyorlarmış bu kullanmı. self:: ya da parent:: kullanımını öneriyorlar. biraz merak ettim açıkçası protected static diye oluşturabilir miyim diye fonksiyonları. static olursa rami daha az yer gibisinden şeyler anlatılıyor kitaplarda genellikle ama örnekler public static ti kalıtımla birlikte anlatmamıştı
 

 

YazilimMimari YazilimMimari Eski adi: Turgay Can Kullanıcı
  • Üyelik 25.06.2012
  • Yaş/Cinsiyet 38 / E
  • Meslek Engineering Director
  • Konum İstanbul Avrupa
  • Ad Soyad T** C**
  • Mesajlar 771
  • Beğeniler 2 / 260
  • Ticaret 0, (%0)

bjlkl adlı üyeden alıntı

şu anda öğrenme aşamasındayım. oop ye merak sardım daha düzenli bir şekilde kodlama yapabilmek için php sürümlerinin bazısında $this->name gibisinden kullanılırken de yeni sürümlerde tavsiye etmiyorlarmış bu kullanmı. self:: ya da parent:: kullanımını öneriyorlar. biraz merak ettim açıkçası protected static diye oluşturabilir miyim diye fonksiyonları. static olursa rami daha az yer gibisinden şeyler anlatılıyor kitaplarda genellikle ama örnekler public static ti kalıtımla birlikte anlatmamıştı


static olursa ram'den daha az yer demek pek makul değil anlatayım; static sınıflar bir kez ram'de adreslenir ve değişmeceğini static anahtar kelimesi ile GCC anlar. İkinci bir defa bu sınıfı çağırdığınızda yeni bir obje yaratmaz amaaaa ki ama.. static sınıflar yada metodlar GCC(Garbage Collector) tarafından toplanmazlar her daim ram'de yer işgal ederler. Fakat siz statik olmayan bir sınıf her lazım olduğunda yaratırsınız ve kullanırsınız daha sonra ise GCC gelir, bunlar toplar ve RAM'dne temizler..

Kullanım noktaları, amaçları tamamı ile ihtiyaca bağlıdır. static sınıflar genelde projelerde Util, Helper diye adlandırılan çokca lazım olan ve genelde değişmeyecek static parametreler ve fonksiyonlar için kullanılır. Mesela ; bir projenin ayağa kalkması için kullanılan config değerler(database bağlantı parametreleri, dosya isimler, klasör path'leri..), Date ve Time ile ilgili metod yada değerler ..


self : this(java)
parent : super(java)

parent ata sınıfa eriş diyor, kalıtım aldığı yada soyut sınfı olan bir üst sınıfa gidiyor.

self olayını yazdıydım ;)

tavsiyem object oriented prensipleri nelerdir onu okumanızdan yanadır. bloğumda yazdıydım basitçe - > oop
bjlkl

kişi bu mesajı beğendi.

https://www.linkedin.com/in/turgaycan/
Kaliteli kod yazılır.. (Günlük/Saatlik ücreti ile)

bjlkl bjlkl WM Aracı Kullanıcı
  • Üyelik 22.01.2014
  • Yaş/Cinsiyet 29 / E
  • Meslek Bilgisayar Mühendisi
  • Konum İstanbul Avrupa
  • Ad Soyad B** C**
  • Mesajlar 1843
  • Beğeniler 269 / 263
  • Ticaret 1, (%100)

Turgay Can adlı üyeden alıntı

static olursa ram'den daha az yer demek pek makul değil anlatayım; static sınıflar bir kez ram'de adreslenir ve değişmeceğini static anahtar kelimesi ile GCC anlar. İkinci bir defa bu sınıfı çağırdığınızda yeni bir obje yaratmaz amaaaa ki ama.. static sınıflar yada metodlar GCC(Garbage Collector) tarafından toplanmazlar her daim ram'de yer işgal ederler. Fakat siz statik olmayan bir sınıf her lazım olduğunda yaratırsınız ve kullanırsınız daha sonra ise GCC gelir, bunlar toplar ve RAM'dne temizler..

Kullanım noktaları, amaçları tamamı ile ihtiyaca bağlıdır. static sınıflar genelde projelerde Util, Helper diye adlandırılan çokca lazım olan ve genelde değişmeyecek static parametreler ve fonksiyonlar için kullanılır. Mesela ; bir projenin ayağa kalkması için kullanılan config değerler(database bağlantı parametreleri, dosya isimler, klasör path'leri..), Date ve Time ile ilgili metod yada değerler ..


self : this(java)
parent : super(java)

parent ata sınıfa eriş diyor, kalıtım aldığı yada soyut sınfı olan bir üst sınıfa gidiyor.

self olayını yazdıydım ;)

tavsiyem object oriented prensipleri nelerdir onu okumanızdan yanadır. bloğumda yazdıydım basitçe - > oop

Teşekkürler anlatıminiz için iyi oldu
 

 

wmaraci
Konuyu toplam 2 kişi okuyor. (0 kullanıcı ve 2 misafir)
Site Ayarları
  • Tema Seçeneği
  • Site Sesleri
  • Bildirimler
  • Özel Mesaj Al