Parse error php/MySql

Résolu
ano -  
Akronos Messages postés 163 Statut Membre -
Bonjour,

voici mon code qui me met parse error !
bool class_exists (string $Form_Input);
if (class_exists('MyClass')) {
$myclass = new MyClass();
}
abstract class Form_Input extends Form_Field {

public function __construct($name, $form) {

parent::__construct($name, $form);
$this->attrs['type'] = 'text';
}

public function get_cleaned_value($value) {

$value = trim($value);
return parent::get_cleaned_value($value);
}

// abstract public function __toString($tab = '');
public function __toString()
{
$tab = '';
$o = $tab.'<form'.$this->attrs.'>'."\n";

if (empty($this->fieldsets)) {

$o .= $this->_html_fields($tab."\t", array_diff_key($this->fields, $this->hidden_fields, $this->submit_fields));
if (!empty($this->hidden_fields)) { $o .= $this->_html_hidden_fields($tab."\t", $this->hidden_fields); }
$o .= $this->_html_fields($tab."\t", $this->submit_fields);

} else {

$hidden_fields = $this->hidden_fields;
$submit_fields = $this->submit_fields;

foreach ($this->fieldsets as $legend => $fields) {

$o .= $this->_html_fieldset($tab, $legend, $fields);

foreach($fields as $f) {

unset($hidden_fields[$f], $submit_fields[$f]);
}
}
if (!empty($hidden_fields)) { $o .= $this->_html_hidden_fields($tab."\t", $hidden_fields); }
if (!empty($submit_fields)) { $o .= $this->_html_fields($tab."\t", $submit_fields); }
}
$o .= $tab.'</form>';
return $o;
}
}

en fait je veux vérifier si ma classe existe !

Merci de votre aide

9 réponses

  1. ano
     
    line 511 : bool class_exists (string $Form_Input);
    0
  2. Akronos Messages postés 163 Statut Membre 32
     
    Le problème es que tu code comme en C.
    Bien que le langage PhP ressemble au langage C il est COMPLÈTEMENT différent...
    inutile de déclaré le type de tes variables.

    bool class_exists (string $Form_Input);
    ||
    V
    class_exists ($Form_Input);
    ou
    $bool = class_exists ($Form_Input);
    0
  3. ano
     
    en effet ça marche déjà mieux, mais toujours une erreur :
    Undefined variable: Form_Input
    class_exists ($Form_Input);
    0
  4. Akronos Messages postés 163 Statut Membre 32
     
    Ta variable $Form_Input n'est pas déclaré.

    Je m'explique: class_exists vérifie si la classe est définie. $Form_Input doit donc correspondre au nom d'une de tes classes. Exemple: $Form_Input = 'MyClass';
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. ano
     
    Merci beaucoup, cette erreur ne s'affiche plus !

    c'est bien ce code qu'on doit mettre pour voir si une classe a déjà été déclarée ?
    que doit-on faire quand "Cannot redeclare class Form_Input " s'affiche ?
    0
  7. Akronos Messages postés 163 Statut Membre 32
     
    Alors:
    if (class_exists('MyClass'))  
    {  
     $myclass = new MyClass();  
    }   
    

    Ce bout de code vérifie que ta classe est bien définie, elle existe, elle est inclus, bref si tout est ok, tu l'instancie.

    Si tu as l'erreur:
    Cannot redeclare class Form_Input

    C'est que ta classe Form_Input est déclarée plusieurs fois. Il faut voir au niveau de tes requires/includes.

    Pour inclure tes classes je ne peux que te conseiller d'utiliser require_once("Classe/MaClasse.php");

    require à la différence d'include va émettre une erreur de compilation si le fichier n'existe pas, include se contente d'un warning.
    le _once permet de n'inclure le fichier qu'une seule fois.

    CF ici
    0
  8. ano
     
    Je te remercie pour tout ! ça fonctionne ! plus d'erreur à ce niveau la !
    Merci =)
    0
  9. Akronos Messages postés 163 Statut Membre 32
     
    De rien.

    Oublie pas de marqué comme résolu.
    0
  10. Skeletyon Messages postés 1622 Date d'inscription   Statut Membre Dernière intervention   157
     
    Bonjour.
    Il serai bien de nous donner la ligne ou le parse error est trouvé.

    Ensuite, une vérification avec isset serait je pense approprié.

    if (isset(class_exists('MyClass'))) 


    -1
    1. Akronos Messages postés 163 Statut Membre 32
       
      Pourquoi utiliser isSet au fait?
      class_exists envoie un booléen true/false...
      0