Объединение целого числа и строки в значение массива

Может кто-нибудь сказать мне, где я все испортил и / или как я могу это решить?

Рабочий код (PHP):

public $data = array(
....
....
'copyright' => array(
'es' => '2013 Mi Empresa',
'en' => '2013 My Company',
),
....
....
);

Сломанный код:

public $data = array(
....
....
'copyright' => array(
'es' => date('Y') . ' Mi Empresa',
'en' => date('Y') . ' My Company',
),
....
....
);

Когда я говорю «сломанный», я имею в виду <body> пустой. Я также попытался добавить (string)date('Y') на месте date('Y'), но безрезультатно.

Заранее спасибо!

1

Решение

Нет, вы не можете настроить свои свойства так:

class Test
{
// this won't work
public $data = array(
'copyright' => array(
'es' => date('Y') . ' Mi Empresa',
'en' => date('Y') . ' My Company',
),
);

// even as simple as this
public $date_now = date('Y-m-d');
}

Цитируя руководство:

Они (свойства) определяются с использованием одного из ключевых слов public, protected или private, за которым следует обычное объявление переменной. Это объявление может включать в себя инициализацию, но эта инициализация должна быть постоянным значением, то есть она должна быть в состоянии быть оцененной во время компиляции и не должна зависеть от информации времени выполнения для оценки.

Это просто означает, что PHP не выполняет такие операции во время компиляции; Вы не можете назначать вычисленные значения и функции константам.

Установите его на конструкторе:

class Test
{
public $data = array(
'copyright' => array(
'es' => '',
'en' => '' ,
),
);

public $date_today = '';

public function __construct()
{
$this->data['copyright']['es'] = date('Y') . ' Mi Empresa';
$this->data['copyright']['en'] = date('Y') . ' My Company';
$this->date_today = date('Y-m-d');
}
}

$test = new Test();
echo '<pre>';
print_r($test);

Примечание: проблема в том, что нет проблем с ошибками в том, что наиболее вероятно, что отчеты об ошибках отключены. (Белый экран смерти).

Всегда включайте его на стадии разработки:

error_reporting(E_ALL);
ini_set('display_errors', '1');
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]