Ben zaten büyük Ayrıntılı bir cevap bir sürü var bakın, ama gerçekten basit terimlerle tutmak için:
You know what a block of code is.
You know that if you want to reuse a block of code, you put it in a function.
So far so good. Now, Classes are about organizing functions and variables.
If you create a lot of functions, you have to be really careful that their names don't clash, and you will probably want to organize your functions in separate files to keep related functions grouped together.
Onun çok basit olarak, Sınıflar bir class of functions içine grubu ile ilgili fonksiyonlar için size yardımcı olur. Yerine
add_product_to_shop();
add_product_to_cart();
add_product_to_wish_list();
Bir sınıf içinde size grup onlara:
Shop::addProduct();
Cart::addProduct();
WishList::addProduct();
Burada Shop
, Cart
ve WishList
, her biri kendi addProduct()
yöntemi vardır Classes vardır (function). Bu fonksiyon isimleri kendilerini çok daha kısa haline gelmiştir, bu işlevleri birlikte çalışmak için tasarlanmıştır ve aynı Class ilgili diğer fonksiyonlar eklemek için kolay olmadığını açıktır, diğer kod parçacığını üzerinde hafif bir iyileşme var.
Ne Sınıflar size daha fazla olsa da bir araya grup işlev değil sadece, ama değişkenler de izin verir. Eğer değişkenler üzerine yazmak gerçekten dikkatli olmak gerekir gibi, adlandırma söz konusu olduğunda değişkenler genellikle fonksiyonları daha kötüdür. Kendi kendi Sınıflar hepsini gruplandırarak, bir adlandırma çatışma az olması. (Bu ile ilişkili bir kavram da Ad denir.)
Ayrıca yapmak için izin ne Sınıflar onlardan nesneler yaratmak için olduğunu. Sınıf ile ilgili değişkenler ve fonksiyon için planı ise, birbirlerinden bağımsız hareket ettiklerini, hatta birkaç, bu planın bir "gerçek nesne" oluşturmak, ama aynı şekilde davranabilir. Bunun yerine $shopping_cart1
takip ve $shopping_cart2
tutmak ve emin fonksiyonları doğru değişken üzerinde hareket yapma, sadece planın bir kopyasını yapmak:
$cart = new Cart();
$cart->addProduct($x);
$anotherCart = new Cart();
$anotherCart->addProduct($y);
// $cart takes care of product $x, $anotherCart of product $y.
// No extra overhead needed to duplicate functionality
// or to make sure the addProduct() function adds to the right cart.
Bu web geliştirme, özellikle PHP çok sık bu gerekmez, ancak uygulamaya bağlı olarak yararlı olabilir.
Ne Sınıflar daha hafifçe onları değiştirmek için izin verir. Eğer bir alışveriş sepeti gibi birlikte hareket fonksiyonunun büyük bir koleksiyon oluşturduk söylüyorlar. Şimdi temelde aynı şekilde çalışır, ancak bazı küçük farklılıklar (indirimler anında hesaplanacaktır gerektiğini söylüyorlar) sahip başka bir alışveriş sepeti oluşturmak istiyorum. Yeni bir sınıf oluşturmak ve bunu tam olarak eski alışveriş sepeti gibi aynı hareket gerektiğini belirtmek, ancak geçersiz kılmak ve bir kaç özel değişkenleri veya işlevleri (bu Inheritance denir) değiştirebilir.
Derslerin kavramı bunu sağlamak ve yukarıdaki noktaların her çok daha fazla ayrıntı ve özelliklerini beraberinde ki çok daha fazla olasılık vardır. Genel, Sınıflar (onları değiştirmeden önce değişkenleri doğrulayarak, alıcılar / belirleyiciler) ve daha kolay tutarlılık kontrollerini etkinleştirmek, o ayrı (namespacing) olmalıdır ayrı şeyler tutmak, birbirine ait şeyler birlikte tutmak için kullanılır ...