Почему вы не можете назвать функцию Codeigniter «новой» в контроллере (и, возможно, в другом месте)?
public function new()
{
$this->load->view('posts/new');
}
Результаты по ошибке:
Ошибка разбора: синтаксическая ошибка, неожиданное «новое» (T_NEW), ожидаемый идентификатор (T_STRING)
Вы не можете сделать это только в Codeigniter
, но во всех PHP, которые вы пишете, это должно throw
ошибка. new
это зарезервированное слово в PHP
, Вы можете узнать больше о зарезервированных словах в PHP
Вот.
Люди обычно пытаются преодолеть это, ставя подчеркивание (_
) перед именем функции.
function _new()
{
echo "Hello!";
}
Для тех, кто говорит, что ты не можешь сделать это, я говорю, что могу. Любой берущий?
$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
new
является зарезервированным ключевым словом в PHP.
Подробнее об этом читайте в PHP документы.