Bonjour j'ai un souci dans le tuto calendrier sur la partie 2
quand je clique sur le liens pour afficher les evenement j'ai cette erre
Fatal error: Cannot redeclare e404() (previously declared in C:\Users\lenovo PC\World\PRO_S1\src\bootstrap.php:4) in C:\Users\lenovo PC\World\PRO_S1\src\bootstrap.php on line 3
voici mon code :
<?php
require '../vendor/autoload.php';
function e404 () {
require '../public/404.php';
exit();
}
function dd(...$vars){
foreach ($vars as $var) {
echo '<pre>';
print_r($var);
echo '</pre>';
}
}
function get_pdo (): PDO {
return new PDO('mysql:host=localhost;dbname=tutocalendrier','root','root', [
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC
]);
}
function h(?string $value): string{
if ($value === null){
return '';
}
return htmlentities($value);
}
voici ou j'ai appelé e404( );
<?php
require '../src/bootstrap.php';
require '../src/Calendar/Events.php';
$pdo = get_pdo();
$events = new Calendar\Events($pdo);
if (!isset($_GET['id'])){
header('Location: /404.php');
}
try {
$event = $events->find($_GET['id']);
} catch (\Exception $e) {
e404();
}
?>
<?php require '../views/header.php'; ?>
<div class="container">
<h1><?= h($event->getName()); ?></h1>
<ul>
<li>Date: <?= $event->getStart()->format('d/m/Y');?></li>
<li>Heure de démarrage: <?= $event->getStart()->format('H:i'); ?></li>
<li>Heure de fin: <?= $event->getEnd()->format('H:i');?></li>
<li>
Description: <br>
<?= h($event->getDescription()); ?>
</li>
</ul>
</div>
<?php require '../views/footer.php'; ?>
voici l'url : http://localhost:8000/event.php?id=1
voici le message d'erreur :
Fatal error: Cannot redeclare e404() (previously declared in C:\Users\lenovo PC\World\PRO_S1\src\bootstrap.php:4) in C:\Users\lenovo PC\World\PRO_S1\src\bootstrap.php on line 3
Bonjour,
Extrait de la documentation : "PHP ne supporte pas la surcharge, la destruction et la redéfinition de fonctions déjà déclarées. "
https://www.php.net/manual/fr/functions.user-defined.php
Bonne journée,