Функция Codeigniter с именем «новый»

Почему вы не можете назвать функцию Codeigniter «новой» в контроллере (и, возможно, в другом месте)?

public function new()
{
$this->load->view('posts/new');
}

Результаты по ошибке:

Ошибка разбора: синтаксическая ошибка, неожиданное «новое» (T_NEW), ожидаемый идентификатор (T_STRING)

0

Решение

Вы не можете сделать это только в Codeigniter, но во всех PHP, которые вы пишете, это должно throw ошибка. new это зарезервированное слово в PHP, Вы можете узнать больше о зарезервированных словах в PHP Вот.

Люди обычно пытаются преодолеть это, ставя подчеркивание (_) перед именем функции.

function _new()
{
echo "Hello!";
}
2

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

Для тех, кто говорит, что ты не можешь сделать это, я говорю, что могу. Любой берущий?

$test = new Test();
$test->new();

class test{

public function __call($method, $args){
if( $method == 'new' ){
echo 'Hello World';
}else{
trigger_error('Call to undefined method '.__CLASS__.'::'.$method,E_USER_ERROR);
}
}
}

Магия!

Хотя я должен отметить, что класс Rouign Codeigniter, вероятно, не найдет метод, определенный таким образом. Так что это не совсем решение для этого. Но, как уже упоминали другие, это ключевое слово (или конструкция) в самом языке PHP.

Лично я могу понять, как ограничить новое для использования объекта, но empty() всегда сводит меня с ума.

Parse error: syntax error, unexpected 'empty' (T_EMPTY), expecting identifier (T_STRING)

Тот, который они должны действительно исправить, а также включить, требовать и т. Д. Совершенно другой контекст.

ОБНОВЛЕНИЕ ДЛЯ CI SCOPE

От https://ellislab.com/codeigniter/user-guide/general/controllers.html

Частные функции

В некоторых случаях вы можете захотеть скрыть определенные функции от общественности
доступ. Чтобы сделать функцию частной, просто добавьте подчеркивание как
префикс имени, и он не будет обслуживаться через запрос URL. Например,
если бы у вас была функция.

private function _utility()
{
// some code
}

Попытка получить доступ к нему через URL, как это, не будет работать:

example.com/index.php/blog/_utility/

Я упоминаю об этом только потому, что ФП использует CI

2

new является зарезервированным ключевым словом в PHP.

Подробнее об этом читайте в PHP документы.

Ключевые слова PHP

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