Una RFC uniforma la sintassi, mentre funzioni il contesto e per php sono validi tutto eccetto i caratteri del warning mostrato.
Un array php non può contenere un punto (e forse anche altri byte) nella propria definizione di chiave, altresì la funzione setcookie prima di php 7.2 usa il percent enconding.
setrawcookie() is exactly the same as setcookie() except that the cookie value will not be automatically urlencoded when sent to the browser.
Note: Using separator characters such as [ and ] as part of the cookie name is not compliant to RFC 6265, section 4, but supposed to be supported by user agents according to RFC 6265, section 5. Dicasi array multidimensionale per php ed è valido $_COOKIE['test'][0] e giustamente altri indici o chiavi in comune con il name della funzione setcookie.
Codice C funzione setcookie php
https://github.com/php/php-src/blob/...ard/head.c#L79