Ich muss eine Funktion erstellen, um einer Variablen eine Zeichenkette entsprechend dem Wert einer anderen Variablen mit OOP zuzuweisen. Ich habe diese Funktion (calculaIMC) in einer Konstruktorklasse erstellt und dafür ein Array ($ imc_arr) verwendet. Mir ist klar, dass mein Code wahrscheinlich umständlich und sogar unpassend aussieht, aber es ist eine Uni-Übung, die dazu dient, bestimmte Dinge zu lehren. Das ist, was ich bis jetzt gefunden habe:PHP - Funktion zum Zuweisen einer Zeichenkette zu einer Variablen mit dem Schalter
<?php
class CalculoIndice{
...
public $imc_arr = array(
'Magreza grave',
'Magreza moderada',
'Magreza leve',
'Saudável',
'Sobrepeso',
'Obesidade Grau I',
'Obesidade Grau II (severa)',
'Obesidade Grau III (mórbida)');
function CalculoIndice(){
$this->preparaCalculo();
$this->calculaIMC();
}
function preparaCalculo(){
...
}
function calculaIMC(){
switch ($this->imc) {
case ($this->imc < 16):
$this->imc_cat = $this->imc_arr[0];
break;
case ($this->imc < 17):
$this->imc_cat = $this->imc_arr[1];
break;
case ($this->imc < 18.5):
$this->imc_cat = $this->imc_arr[2];
break;
case ($this->imc < 25):
$this->imc_cat = $this->imc_arr[3];
break;
case ($this->imc < 30):
$this->imc_cat = $this->imc_arr[4];
break;
case ($this->imc < 35):
$this->imc_cat = $this->imc_arr[5];
break;
case ($this->imc < 40):
$this->imc_cat = $this->imc_arr[6];
break;
default:
$this->imc_cat = $this->imc_arr[7];
}
}
}
?>
Es funktioniert nicht. Ich konnte nicht richtig verstehen, was passiert und was das Problem ist, aber es gibt nicht die Variable (imc_cat), wie ich es beabsichtigte. Ich bin mir sicher, dass es etwas einfaches ist, dass ich vermisse, aber ich habe ein paar Stunden damit verbracht, nach einer Antwort zu suchen, die keinen Erfolg hat. Ich schätze jede Einsicht, was falsch sein könnte.
Zuerst Ihre switch-Anweisung falsch aussieht, weil alle auf true gleichsetzen wird. Du solltest Rage verwenden, zB '$ this-> imc> 0 && $ this-> imc <16', $ this-> imc> 16 && $ this-> imc <18.5',' $ this-> imc> 18.5 && $ this-> imc <25' –