Richiamare un array in una classe

bismark2005

Utente Attivo
8 Mar 2011
70
0
0
Salve, ho la seguente classe:

PHP:
class Email extends PropertyObject {
    
    function __construct($emailid) {

        $arData = DataManager::getEmailData($emailid);

        parent::__construct($arData);

        $this->propertyTable['emailid'] = 'emailid';
        $this->propertyTable['id'] = 'emailid';
        $this->propertyTable['entityid'] = 'entityid';
        $this->propertyTable['email'] = 'semail';
        $this->propertyTable['type'] = 'stype';
    }

    function validate() {
        if(!$this->email) {
            $this->errors['email'] = 'You must set an email address.';
        }

Nella funzione validate quando scrive $this->email sta richiamando l'array $this->propertyTable['email'] = 'semail'; ?
 
Ultima modifica di un moderatore:
No quando esegue if(!$this->email) controlla se è settato il parametro email.
Infatti poi come messaggio d'errore inserisce nell'array 'errors[]' in 'email' la frase "You must set an email address." (che sta per: devi inserire un indirizzo email).
 
No quando esegue if(!$this->email) controlla se è settato il parametro email.
Infatti poi come messaggio d'errore inserisce nell'array 'errors[]' in 'email' la frase "You must set an email address." (che sta per: devi inserire un indirizzo email).

Per vedere se un parametro è settato non si dovrebbe usare isset?
 
Ci Sono più modi.

Grazie, altra cosa..

Codice:
<?php

  require_once('class.PropertyObject.php');
  require_once('class.PhoneNumber.php');
  require_once('class.Address.php');
  require_once('class.EmailAddress.php');

  abstract class Entity extends PropertyObject {
    private $_emails;
    private $_addresses;
    private $_phonenumbers;

    public function __construct($entityID) {
      $arData = DataManager::getEntityData($entityID);

      parent::__construct($arData);

      $this->propertyTable['entityid'] = 'entityid';
      $this->propertyTable['id'] = 'entityid';
      $this->propertyTable['name1'] = 'sname1';
      $this->propertyTable['name2'] = 'sname2';
      $this->propertyTable['type'] = 'ctype';
      $this->_emails = DataManager::getEmailObjectsForEntity($entityID);
      $this->_addresses = DataManager::getAddressObjectsForEntity($entityID);
      $this->_phonenumbers = DataManager::
              getPhoneNumberObjectsForEntity($entityID);
    }

    function setID($val) {
      throw new Exception('You may not alter the value of the ID field!');
    }

    function setEntityID($val) {
      $this->setID($val);
    }

    function phonenumbers($index) {
      if(!isset($this->_phonenumbers[$index])) {
        throw new Exception('Invalid phone number specified!');
      } else {
         return $this->_phonenumbers[$index];
      }
    }

In questo codice, nella funzione phonenumbers quando scrive: if(!isset($this->_phonenumbers[$index] significa se l'array phonenumber[$index] è valorizzato ritornami $this->_phonenumber

Giusto?
 
Si, se non è settato restituisce un errore; altrimenti restituisce il valore: $this->_phonenumbers[$index];
 
Codice:
<?php 

require_once('class.Entity.php');
require_once('class.Organization.php');

class Individual extends Entity {

  public function __construct($userID) {
    parent::__construct($userID);

    $this->propertyTable['firstname'] = 'name1';
    $this->propertyTable['lastname'] = 'name2';
  }

  public function __toString() {
    return $this->firstname . ' ' . $this->lastname;
  }

  public function getEmployer() {
    return DataManager::getEmployer($this->id);
  }

  public function validate() {
    parent::validate();

    //add individual-specific validation
  }

}
?>
E in questo codice il metodo magico tostring quando si attiva?
 

Discussioni simili