синтаксическая ошибка, неожиданный токен «<<", ожидающий "function" или "const"

#php #php-8

#php #php-8

Вопрос:

Я прочитал эту статью после обновления моей локальной среды разработки до php8.

И реализуйте его в моем классе, например:

 <<Attribute('foo')>>
public function index()
{
    $posts = (new Post)->get()->withMany('image');

    return $this->app()->view('index', compact('posts'));
}
 

и возвращает ошибку.

синтаксическая ошибка, неожиданный токен «<<«, ожидающий «function» или «const»

Что на самом деле является правильным для этого в php8. Я что-то упустил?

Комментарии:

1. Также обратите внимание, что статья была написана еще в мае до завершения работы над PHP 8. Вот более актуальная статья об изменениях.

Ответ №1:

Правильный синтаксис атрибута в PHP 8:

 #[Attribute('foo')]
 

https://www.php.net/releases/8.0/en.php

Комментарии:

1. Чтобы пояснить, почему люди могут находить примеры с неправильным синтаксисом: было много споров о том, что использовать, и на самом деле он несколько раз менялся в течение периода предварительной версии PHP 8. Итак, для некоторых сборок до 8.0.0 <<Attribute>> на самом деле был правильный синтаксис.

2. Все еще не понял, как использовать эту новую концепцию: (

Ответ №2:

 public function create(Request $request)//create object of the request
{ 
    $student = new Student;//create object of the model
    $student->name = $request->name;
    $student->city = $request->city;
    $student->marks = $request->marks;
    $student->save();
    return redirect('index');//if we write this out of the curly braces then this error show

    
}
 

Комментарии:

1. Ваше решение не связано с заданным вопросом.