Results 1 to 7 of 7

Thread: Visto che siamo in tema di programmazione... Devo chiedere chiarimento io

  1. #1
    Lieutenant Commander Mez's Avatar
    Join Date
    Sep 2003
    Location
    Milano
    Posts
    6.607

    Default Visto che siamo in tema di programmazione... Devo chiedere chiarimento io

    su php ho sempre fatto programmazione procedurale, ora spinto dalla scimmia e dalla curiosita stavo provando l'approccio all' oop, ma devo avere un paio di chiarimenti. Come mai non vedo stampato nulla a monitor con questa sequenza:

    classe:
    Code:
    <?php
    //classe Automobile
    class Automobile{
    var $Marchio, $Cilindri, $Colore;
    Function setMarchio($StrMarchio){
    $this->Marchio == $StrMarchio; 
    }
    Function setCilindri($IntCilindri){
    $this->Cilindri == $IntCilindri;
    }
    Function setColore($StrColore){
    $this->Colore == $StrColore;
    }
    Function getInfo() {
    $return = "Marchio:".$this->Marchio." Numero Cilindri:".$this->Cilindri." Colore:".$this->Colore;
    return $return;
    }
    }
    ?>

    file dove richiamo la classe:
    Code:
    <?php
    //includo il file oop.php
    require_once("Automobile.php"); 
    $Mazda = new Automobile;
    $Mazda->setMarchio("Mazda");
    $Mazda->setCilindri("4");
    $Mazda->setColore("Grigio");
    echo $Mazda->getInfo();
    ?>
    tutto ok niente errori, solo che non vedo i valori mazda/4/grigio -.-

    sistema osx

    edit: non mi tiene le indentazioni il forum, ma ci sono tutte

  2. #2
    Master Chief Petty Officer Rise-the-Sky's Avatar
    Join Date
    Sep 2004
    Posts
    2.485

    Default

    Controlla la classe Automobile...in particolare le 3 funzioni di set....in particolare la sintassi dell'assegnazione...
    spamm is life.

  3. #3
    Lieutenant Junior Grade Eltarion's Avatar
    Join Date
    Dec 2004
    Location
    Venaria
    Posts
    4.085

    Default

    Quote Originally Posted by Rise-the-Sky View Post
    Controlla la classe Automobile...in particolare le 3 funzioni di set....in particolare la sintassi dell'assegnazione...
    Realm Of Trollers
    while ( ! ( succeed = try() ) );
    Spoiler

  4. #4
    Lieutenant Commander Mez's Avatar
    Join Date
    Sep 2003
    Location
    Milano
    Posts
    6.607

    Default

    @eltario & rise: grazie, non me ne ero accorto del doppio ==

  5. #5
    Lieutenant Commander Mez's Avatar
    Join Date
    Sep 2003
    Location
    Milano
    Posts
    6.607

    Default

    up:
    una costante dentro ad una classe, posso utilizzarla quante volte voglio? Mi spiago meglio, ho questa classe:
    Code:
    class Issue extends CActiveRecord
    {
    const TYPE_BUG=0;
    const TYPE_FEATURE=1;
    const TYPE_TASK=2;
    const STATUS_NOT_YET_STARTED=0;
    const STARTED=1;
    const FINISHED=2;
    public function getTypeOptions()
    {
    return array(
    self::TYPE_BUG=>'Bug',
    self::TYPE_FEATURE=>'Feature',
    self::TYPE_TASK=>'Task',
    );
    }
    public function getStatusOption()
    {
    return array(
    self::STATUS_NOT_YET_STARTED=>'Not yet started',
    self::STARTED=>'Started',
    self::FINISHED=>'Finished',
    );
    }
    
    // ecc ...
    Cioè io posso usare tranquillamente la costante TYPE_BUG=0; per utilizzarla nel metodo GetStatusOption() ?
    Sono 2 menu a tendina praticamente
    che con questo grazie a questo metodo:
    Code:
    public static function model($className=__CLASS__)
    {
    return parent::model($className);
    }
    faccio il render:
    Code:
    <div class="row">
    <?php echo $form->labelEx($model,'type_id'); ?>
    <?php echo $form->dropDownList($model,'type_id', $model->getTypeOptions()); ?>
    <?php echo $form->error($model,'type_id'); ?>
    </div>
    <div class="row">
    <?php echo $form->labelEx($model,'status_id'); ?>
    <?php echo $form->dropDownList($model,'status_id',$model->getStatusOption()); ?>
    <?php echo $form->error($model,'status_id'); ?>
    </div>
    (scusate il casino, ma non tiene una sega di indentazione il code)

  6. #6
    Lieutenant Junior Grade Eltarion's Avatar
    Join Date
    Dec 2004
    Location
    Venaria
    Posts
    4.085

    Default

    la costante puoi usarla dove vuoi all'interno della classe, se la dichiari public anche fuori.

    non ho capito la seconda domanda però :P
    Realm Of Trollers
    while ( ! ( succeed = try() ) );
    Spoiler

  7. #7
    Lieutenant Commander Mez's Avatar
    Join Date
    Sep 2003
    Location
    Milano
    Posts
    6.607

    Default

    Quote Originally Posted by Eltarion View Post
    la costante puoi usarla dove vuoi all'interno della classe, se la dichiari public anche fuori.

    non ho capito la seconda domanda però :P
    con 3 costanti che hanno valore 0,1,2 posso usarle all'infinito dentro a tutti i metodi che creo della classe? usando il self:: giusto?
    io posso creare altre funzioni Options() richiamando dentro le 3 costanti, questo intendo

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
[Output: 65.40 Kb. compressed to 55.58 Kb. by saving 9.82 Kb. (15.02%)]