0

所以我想让我的页面有多语言功能,比如德语、英语和匈牙利语。我开始在 PHP 中学习 OOP,现在我强迫自己在任何事情上都使用 OOP,这当然不是一个好主意,但我尝试学习。所以这就是我到目前为止得到的:

<?php

class class_lang {

    private $language;

    public function __construct() {
        $this->language = $_GET['lang'];
    }

    public function select_lang($var);

        return ('language_'.$this->select_lang($var));
}

?>

那么发生了什么。在我的索引页面上,当我单击 1 时,我得到了 3 个链接(国旗),我的班级从 url 获取值,如下所示:href="index.php?lang=uk"。现在我不确定如何制作字符串:因为我想要包含的 lang 文件看起来像 language_uk.php 、 language_ge.php 等......所以我只想创建那个字符串并将其传递回我的索引页面中的值,以便我可以包含正确的文件。

4

3 回答 3

0

(1) 在 PHP 中,字段成员用前导“$”声明,但后来,没有它,并以“$this->”为前缀。所以:

$language;

变成:

$this->language

(2) Extra,去掉方法头的分号:

public function select_lang($var)
{
   return ('language_' . $this->language($var));
}

(3) 另外,在返回值的方法中添加一个临时变量,它不是语法要求的,但是,将允许您调试(“ToString”),并避免很多问题:

public function select_lang($var)
{
   $Result = ('language_' . $this->language)
   return $Result;
}

干杯。

于 2012-06-07T19:10:38.090 回答
0

尝试公开 var $language ,构造可以过滤和验证 GET var,将对象保存在某处(会话)以与对象交互 您可以使用的其他方法是 ChangeLang SetLang LoadLangFile SaveToSession 许多其他..

于 2012-05-12T18:48:36.630 回答
0

如果我理解正确,这应该有效:

return 'language_' . $this->language;
于 2012-05-12T18:34:37.217 回答