J'étudie PHP et l'une des tâches était de créer une certaine classe. J'ai beaucoup essayé, mais il y a toujours une erreur.

TÂCHE:

Créez la classe User, qui aura des propriétés privées $name et $age et une propriété publique $site, dont les valeurs doivent être définies dans un constructeur de classe, méthode getFullInfo(), qui retournera (pas imprimer!) $this->name at the age of $this->age is a user of $this->site. Le constructeur doit vérifier l'âge de l'entrée, et s'il est supérieur à 130 ou inférieur à 0, définissez la valeur $age comme unset (juste comme une chaîne). Une fois la création de l'instance réussie, le constructeur doit imprimer User was successfully created!.

J'utilise PHP 5.

Le site sur lequel j'étudie n'applique pas ma version de la solution. J'espère que tu m'aideras ^^

<?php 
class User{
    private $name;
    private $age;
    public $site;
    function __construct($q,$w,$e){
        echo "User was successfully created!";
        $this->name=$q;
        $this->site=$e;
        if($w>130 || $w<0){
            unset($w);
        };
        $this->age=$w;
    }
    public function getFullInfo(){
        return "$this->name at the age of $this->age is a user of $this->site";
    } 
} 
?>
php
-2
Kisara 19 juin 2019 à 20:27

4 réponses

Meilleure réponse

La tâche indique que si l'âge est hors limites, vous devez le définir sur la chaîne unset. Appeler unset($w) ne fait pas ça. Changez cela en:

$w = "unset";
0
Barmar 19 juin 2019 à 17:32

Tu es proche. Nommez vos variables, arguments et paramètres de manière significative.

s'il est supérieur à 130 ou inférieur à 0, définissez la valeur $ age comme non définie (juste comme une chaîne)

Signifie probablement $this->age = 'unset';

<?php 
class User
{
    private $name;
    private $age;
    public $site;

    function __construct($name, $site, $age)
    {
        echo "User was successfully created!";

        $this->name = $name;
        $this->site = $site;

        if ($age > 130 || $age < 0) {
            $this->age = 'unset';
        } else {
            $this->age = $age;
        }

    }

    public function getFullInfo()
    {
        return "$this->name at the age of $this->age is a user of $this->site";
    }
}

$user = new User('Tony McTony', 'Tree House', 35);

echo $user->getFullInfo();

// Output: User was successfully created!Tony McTony at the age of 35 is a user of Tree House
0
waterloomatt 19 juin 2019 à 17:36

Je le pense ici:

 return "$this->name at the age of $this->age is a user of $this->site";

// it should be : (i think)

return $this->name . "at the age of " . $this->age . " is a user of " . $this->site;



J'espère que cela aide

0
Xanonz 19 juin 2019 à 17:41

Votre problème est probablement la désactivation de la variable $w. Quand ils disent unset la variable, vous devriez le faire au $this->age plutôt qu'au $w.

<?php
$this->age = $w;
if($w > 130 || $w < 0){
   $this->age = 'unset';
};
?>

Si cela ne résout pas votre problème, une explication plus descriptive du problème serait utile.

-1
shn 19 juin 2019 à 18:37