Partage

POO PHP

Sujet résolu
14 janvier 2018 à 2:20:56

Bonsoir,

Je commence à apprendre le php orienté objet et me voila bloqué.

J'essaye cet exemple simple:

fichier php

<?php


require 'form.php';

$form = new form(array('username' => 'Clément'));

var_dump($form);
die();

echo $form->input('username');
echo $form->input('password');
echo $form->submit();


 ?>

classe form

<?php

class form{

  private $data = array();

  public function __construct($data){
    $this->$data = $data;
  }

}
?>

J'obtiens l erreur suivante: 

[Sun Jan 14 02:15:32.595799 2018] [php7:emerg] [pid 7309] [client xx.xxx.xx.xx:xxxxx] PHP Parse error:  syntax error, unexpected '->' (T_OBJECT_OPERATOR) in /home/xxx/www/Public/form.php on line 8

Je suis actuellement sur la version Php 7.2

Vous êtes demandeur·se d'emploi ?
Sans diplôme post-bac ?

Devenez Développeur·se web junior

Je postule
Formation
courte
Financée
à 100%
14 janvier 2018 à 10:05:22

Hello,

Il suffit de lire de près le message d'erreur qui est fourni.

Parse error:  syntax error, unexpected '->' (T_OBJECT_OPERATOR) in /home/xxx/www/Public/form.php on line 8

Or qu'as-tu en ligne 8 ?

$this->$data = $data;

Le problème vient simplement du fait qu'accéder à une variable d'objet en POO se fait ainsi : $this->data, le $ étant déjà avant le $this. C'est un peu comme si tu voulais accéder à un tableau par son index. Tu écriras $tableau['index'] et non $tableau['$index'] (même si par ailleurs $tableau[$index] est aussi possible, mais c'est un autre esprit).

Bon courage ;)

Nicolas - Développeur PHP qui bricole pas mal, utilisant Bootstrap, Materialize, MySQL et quelques astuces piochées par ci par là. Codeigniter a changé ma vie de codeur :D

POO PHP

× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
  • Editeur
  • Markdown