我最近开始对OOP更感兴趣,所以我尝试在我的新项目上实现它。
课程成语的目的是帮助我更快地获得所有成语和翻译信息。
我的班级现在看起来像这样:
class Idiom
{
var $idiom;
public function setIdiom($newIdiom)
{
$this->idiom = $newIdiom;
}
public function getIdiom()
{
return $this->idiom;
}
public function month($idiom, $month)
{
switch ($idiom) {
case 'pt':
switch ($month) {
case 'January':
$chosen_month = 'Janeiro';
break;
case 'February':
$chosen_month = 'Fevereiro';
break;
case 'March':
$chosen_month = 'Março';
break;
case 'April':
$chosen_month = 'Abril';
break;
case 'May':
$chosen_month = 'Maio';
break;
case 'June':
$chosen_month = 'Junho';
break;
case 'July':
$chosen_month = 'Julho';
break;
case 'August':
$chosen_month = 'Agosto';
break;
case 'September':
$chosen_month = 'Setembro';
break;
case 'October':
$chosen_month = 'Outubro';
break;
case 'November':
$chosen_month = 'Novembro';
break;
case 'December':
$chosen_month = 'Dezembro';
break;
}
break;
}
return $chosen_month;
}
}
我使用这段代码访问:
for ($m=1; $m<=12; $m++) {
$month = date('F', mktime(0,0,0,$m, 1, date('Y')));
$idiom = new Idiom();
echo '<option value="'.$m.'">'.$idiom->months('pt',$month).'</option>';
}
但我也尝试过使用这种方法:
for ($m=1; $m<=12; $m++) {
$month = date('F', mktime(0,0,0,$m, 1, date('Y')));
echo '<option value="'.$m.'">'.Idiom::months('pt',$month).'</option>';
}
但是它们都触发了错误:致命错误:未捕获错误:调用未定义的方法Idiom :: months()。
我目前正在Xampp上运行PHP 7.2.0。 我遵循的指南是:https://www.killerphp.com/tutorials/php-objects-page-1/
感谢您的帮助和建议,我们也非常欢迎。
答案 0 :(得分:0)
您有拼写错误。您在班级中定义的公共方法是月份而不是月份。 public function month($idiom, $month){}