Core PHP

List and Access Class and Object Members

This example PHP program demonstrates how to list and access the class and object members of a user-defined type.

ListAndAccessMembers.php

<?php

  class CMass {
    // Class Members
    static $zsaLiturgicalSeasons = ['Advent', 'Christmas', 'Lent',
      'Paschal Triduum', 'Easter', 'Ordinary Time'];
    static $zsaLiturgicalColors = ['White', 'Red', 'Green', 'Violet',
      'Black', 'Rose', 'Gold'];
    private static $zsCurrentSeason = 'Christmas';
    public static $zsCurrentColor = 'White';

    public static function IsALiturgicalColor($sTestColor) {
      foreach (self::$zsaLiturgicalColors as $sColor) {
        if ($sColor == $sTestColor) {
          return true;
        }
      }
      return false;
    }
    public static function GetCurrentSeason() {
      return self::$zsCurrentSeason;
    }
    private static function GetCurrentColor() {
	  return self::$zsCurrentColor;
    }

    // Object Members
    private $msLiturgicalSeason;
    var $msLiturgicalColor;

    public function __construct($sSeason, $sColor) {
      $this->msLiturgicalSeason = $sSeason;
      $this->msLiturgicalColor = $sColor;
    }
    public function IsAPenitentialTime() {
      return ($this->GetColor() == 'Violet');
    }
    public function GetSeason() {
      return $this->msLiturgicalSeason;
    }
    private function GetColor() {
      return $this->msLiturgicalColor;
    }
    public function GetMethods() {
      return get_class_methods($this);
    }
    public function GetVars() {
      return get_object_vars($this);
    }
  }

  echo "<b>Get Class Methods (excludes private methods):</b><br />";
  $saClassMethods = get_class_methods('CMass');
  foreach ($saClassMethods as $sKey => $sValue) {
    echo "&dollar;saClassMethods[$sKey] = $sValue<br />";
  }
  echo "<br />";

  echo "<b>Get Class Methods (includes private methods):</b><br />";
  $qMass = new CMass('Lent', 'Violet');
  $saClassMethods = $qMass->GetMethods();
  foreach ($saClassMethods as $sKey => $sValue) {
    echo "&dollar;saClassMethods[$sKey] = $sValue<br />";
  }
  echo "<br />";

  echo "<b>Get Class Variables (excludes private variables):</b><br />";
  $saClassVars = get_class_vars('CMass');
  foreach ($saClassVars as $sKey => $sValue) {
    echo "&dollar;saClassVars[$sKey] = $sValue<br />";
  }
  echo "<br />";

  echo "<b>Get Object Variables (excludes private variables):</b><br />";
  $qMass = new CMass('Lent', 'Violet');
  $saObjectVars = get_object_vars($qMass);
  foreach ($saObjectVars as $sKey => $sValue) {
    echo "&dollar;saObjectVars[$sKey] = $sValue<br />";
  }
  echo "<br />";

  echo "<b>Get Object Variables (includes private variables):</b><br />";
  $qMass = new CMass('Lent', 'Violet');
  $saObjectVars = $qMass->GetVars();
  foreach ($saObjectVars as $sKey => $sValue) {
    echo "&dollar;saObjectVars[$sKey] = $sValue<br />";
  }
  echo "<br />";

  echo "<b>Calling class methods:</b><br />";
  echo "The current season is  ".CMass::GetCurrentSeason()."<br />";
  echo "CMass::GetCurrentColor() is not accessible.<br />";
  $saTestColors = ['Red', 'Blue', 'Green', 'White', 'Yellow', 'Pink'];
  foreach ($saTestColors as $sTest) {
    $sStatement = (CMass::IsALiturgicalColor($sTest) ? "is" : "is not");
    echo "$sTest ".$sStatement." a liturgical color.<br />";
  }
  echo "<br />";

  echo "<b>Calling object methods:</b><br />";
  $qMass = new CMass('Lent', 'Violet');
  $sStatement = ($qMass->IsAPenitentialTime() ? "is" : "is not");
  echo "It ".$sStatement." a penitential time.<br />";
  echo "The liturgical season is ".$qMass->GetSeason().".<br />";
  echo "&dollar;qMass->GetColor() is not accessible.<br />";
?>
 

Output

 
 

© 2007–2024 XoaX.net LLC. All rights reserved.