SORU
5 HAZİRAN 2009, Cuma


SABİT'PHP bir sınıf üzerinde tanımlı s alabilir miyim?

Birkaç SABİT bazı sınıfları tanımlanmış ve bunların bir listesini almak istiyorum. Örneğin:

class Profile {
    const LABEL_FIRST_NAME = "First Name";
    const LABEL_LAST_NAME = "Last Name";
    const LABEL_COMPANY_NAME = "Company";
}

İNŞ Profile sınıfı üzerinde tanımlı bir listesini almak için herhangi bir yolu var mı? Söyleyebileceğim kadarıyla, en yakın seçenek(get_defined_constants()), işe yaramayacaktır.

Aslında ne gerek sabit adları - böyle bir şey bir listesi:

array('LABEL_FIRST_NAME',
    'LABEL_LAST_NAME',
    'LABEL_COMPANY_NAME')

Ya da:

array('Profile::LABEL_FIRST_NAME', 
    'Profile::LABEL_LAST_NAME',
    'Profile::LABEL_COMPANY_NAME')

Hatta:

array('Profile::LABEL_FIRST_NAME'=>'First Name', 
    'Profile::LABEL_LAST_NAME'=>'Last Name',
    'Profile::LABEL_COMPANY_NAME'=>'Company')

CEVAP
5 HAZİRAN 2009, Cuma


Bunun için Reflection kullanabilirsiniz. Eğer bu yapıyorsun, eğer siz bir sürü sonucunu önbelleğe bakmak istiyorum unutmayın.

<?php
class Profile {
    const LABEL_FIRST_NAME = "First Name";
    const LABEL_LAST_NAME = "Last Name";
    const LABEL_COMPANY_NAME = "Company";
}


$refl = new ReflectionClass('Profile');
print_r($refl->getConstants());

Çıkış:

Array
(
    ['LABEL_FIRST_NAME'] => First Name
    ['LABEL_LAST_NAME'] => Last Name
    ['LABEL_COMPANY_NAME'] => Company
)

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Gali B

    Gali B

    1 EYLÜL 2006
  • The White House

    The White Ho

    21 Ocak 2006
  • ThePointblank

    ThePointblan

    18 Aralık 2006