Parse error php/MySql

Résolu/Fermé
Signaler
-
Messages postés
140
Date d'inscription
jeudi 6 janvier 2011
Statut
Membre
Dernière intervention
31 janvier 2011
-
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

line 511 : bool class_exists (string $Form_Input);
Messages postés
140
Date d'inscription
jeudi 6 janvier 2011
Statut
Membre
Dernière intervention
31 janvier 2011
33
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);
en effet ça marche déjà mieux, mais toujours une erreur :
Undefined variable: Form_Input
class_exists ($Form_Input);
Messages postés
140
Date d'inscription
jeudi 6 janvier 2011
Statut
Membre
Dernière intervention
31 janvier 2011
33
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';
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 ?
Messages postés
140
Date d'inscription
jeudi 6 janvier 2011
Statut
Membre
Dernière intervention
31 janvier 2011
33
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
Je te remercie pour tout ! ça fonctionne ! plus d'erreur à ce niveau la !
Merci =)
Messages postés
140
Date d'inscription
jeudi 6 janvier 2011
Statut
Membre
Dernière intervention
31 janvier 2011
33
De rien.

Oublie pas de marqué comme résolu.
Messages postés
1547
Date d'inscription
jeudi 20 novembre 2008
Statut
Membre
Dernière intervention
30 décembre 2013
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'))) 


Messages postés
140
Date d'inscription
jeudi 6 janvier 2011
Statut
Membre
Dernière intervention
31 janvier 2011
33
Pourquoi utiliser isSet au fait?
class_exists envoie un booléen true/false...