OOP를 사용하는 다른 변수의 값에 따라 변수를 문자열에 할당하는 함수를 만들어야합니다. 생성자 클래스 내부에서이 함수 (calculaIMC)를 생성하고 배열 ($ imc_arr)을 사용하기 위해이 함수를 작성했습니다. 내 코드가 아마도 복잡하고 심지어 부적절한 것처럼 보일 수도 있지만 특정 일을 가르치기 위해 설계된 일종의 연습입니다. 그것이 내가 지금까지 생각해 낸 것입니다 :PHP - 스위치를 사용하여 변수에 문자열을 할당하는 함수
<?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];
}
}
}
?>
작동하지 않습니다. 나는 무슨 일이 일어나고 있는지, 문제는 무엇인지를 알 수는 없지만 의도 한대로 (imc_cat) 변수를 반향하지 않습니다. 나는 그것이 내가 누락 된 단순한 무언가이다라고 확신한다. 그러나 나는 성공없이 어떤 대답을 찾고있는 데 몇 시간을 보냈다. 무엇이 잘못 되었을지에 대한 통찰력에 감사드립니다.
먼저 switch 문이 잘못 보인다. rage ie'$ this-> imc> 0 && $ this-> imc <16','$ this-> imc> 16 && $ this-> imc <18.5','$ this-> imc> 18.5 &&를 사용해야합니다. $ this-> imc <25' –