Parse error php/MySql

Résolu
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. line 511 : bool class_exists (string $Form_Input);
    0
    1. 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
      1. en effet ça marche déjà mieux, mais toujours une erreur :
        Undefined variable: Form_Input
        class_exists ($Form_Input);
        0
        1. 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
          1. 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
            1. 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
              1. Je te remercie pour tout ! ça fonctionne ! plus d'erreur à ce niveau la !
                Merci =)
                0
                1. De rien.

                  Oublie pas de marqué comme résolu.
                  0
                  1. 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. Pourquoi utiliser isSet au fait?
                      class_exists envoie un booléen true/false...
                      0