1

我正在尝试创建一个函数,该函数根据域扩展名更改站点的语言环境,但是当我尝试将 AppModel 中的变量值设置为函数时,出现错误。我不确定我做错了什么。

仅供参考:$_SERVER['HTTP_HOST'] = '.de';

class AppModel extends Model {

//var $locale = 'de_de'; // Example of what I need

var $locale = $this->getLocale();

    function getLocale() {

        $domain = explode('.', $_SERVER['HTTP_HOST']); 

        if ($domain[1] == 'de') {

            return 'de_de';

        } else {

        return 'en_gb';

        }

    }

}

返回错误:

Parse error: syntax error, unexpected T_VARIABLE in /var/www/devsite/v1/site/app/app_model.php on line 7 Call Stack: 0.0002 671648 1. {main}() 
/var/www/devsite/v1/site/app/webroot/index.php:0 0.0255 5883776 2. Dispatcher->dispatch() /var/www/devsite/v1/site/app/webroot/index.php:83 0.0264 5949592 3. 
Dispatcher->__getController() /var/www/devsite/v1/site/cake/dispatcher.php:116 0.0264 5949672 4. Dispatcher->__loadController() 
/var/www/devsite/v1/site/cake/dispatcher.php:385 0.0265 5951760 5. App->import() /var/www/devsite/v1/site/cake/dispatcher.php:413 0.0265 5953552 6. 
App->__settings() /var/www/devsite/v1/site/cake/libs/configure.php:916 0.0265 5954000 7. App->import() 
/var/www/devsite/v1/site/cake/libs/configure.php:1171 0.0265 5957624 8. App->__find() /var/www/devsite/v1/site/cake/libs/configure.php:955 0.0268 5984264 9. 
App->__load() /var/www/devsite/v1/site/cake/libs/configure.php:1019 0.0269 6047416 10. require('/var/www/devsite/v1/site/app/app_controller.php') 
/var/www/devsite/v1/site/cake/libs/configure.php:1060 0.0269 6047560 11. App->import() /var/www/devsite/v1/site/app/app_controller.php:8 0.0270 6051456 12. 
App->__find() /var/www/devsite/v1/site/cake/libs/configure.php:955 0.0270 6052240 13. App->__load() /var/www/devsite/v1/site/cake/libs/configure.php:1036 
0.0272 6164128 14. require('/var/www/devsite/v1/site/cake/libs/sanitize.php') /var/www/devsite/v1/site/cake/libs/configure.php:1060 0.0272 6164416 15. 
App->import() /var/www/devsite/v1/site/cake/libs/sanitize.php:2 0.0273 6165128 16. App->__settings() /var/www/devsite/v1/site/cake/libs/configure.php:916 0.0337 8579264 17. 
App->import() /var/www/devsite/v1/site/cake/libs/configure.php:1149 0.0337 8582864 18. App->__find() /var/www/devsite/v1/site/cake/libs/configure.php:955 0.0338 8583952 19. 
App->__load() /var/www/devsite/v1/site/cake/libs/configure.php:1019

提前致谢。

4

1 回答 1

1

错误信息说得很清楚:invalid php

您仍然必须编写有效的 PHP(即使它是 cakePHP)!使用适当的 IDE 将立即概述错误:

var $uses ('App');

应该

public $uses = array('App');

记录在案!

如果您仍在使用 PHP4,则需要“var”而不是“public”

你真的应该开始阅读基本的 php 书籍,因为你似乎缺乏基本的东西。您也不能在类声明中使用动态方法:

 var $locale = $this->getLocale();

您需要为此使用构造函数:

public function __construct($id = false, $table = null, $ds = null) {
    parent::__construct($id, $table, $ds);

    $this->locale = $this->getLocale();
}
于 2012-09-05T08:53:42.240 回答