php неожиданно T_VARIABLE, небольшая помощь здесь - PullRequest
2 голосов
/ 22 апреля 2010

Привет. У меня есть следующий код:

class user {

  //URLs
  private static $signInURL = $_SERVER['DOCUMENT_ROOT'].'/?page=signin';

  ...
  ...
  ...

И я получаю

и неожиданная ошибка T_VARIABLE.

Может кто-нибудь сказать мне, как создать этот URL, чтобы он не дал мне ошибку?

Ответы [ 2 ]

4 голосов
/ 22 апреля 2010

Вы не можете использовать переменную там, вы должны переместить ее в метод. В любом случае, это плохой стиль, так как класс должен знать о $ _SERVER.

Если вы действительно, очень хотите, чтобы вы могли использовать:

private static $signInURL = '';

public static getSignInUrl()
{
  if (User::$signInUrl == '') User::$signInUrl = $_SERVER....;
  return User::$signInUrl;
}

Я предлагаю использовать:

class User
{
  private static $signInUrl = '/signin';

  public static getSignInUrl($base)
  {
    return $base . User::$signInUrl;
  }
}
1 голос
/ 22 апреля 2010

Нельзя указывать переменные в качестве значения свойств класса. Попробуйте,

class a
{
 private $signInURL;
 public function __construct()
 {
  $this->signInURL = $_SERVER['DOCUMENT_ROOT'].'/?page=signin';
 }
}
...