note 130358 added to function.echo

From: Date: Tue, 10 Jun 2025 16:41:56 +0000
Subject: note 130358 added to function.echo
Groups: php.notes 
Request: Send a blank email to php-notes+get-222212@lists.php.net to get a copy of this message
echo "hello"; <?php namespace entidad; use DateTime; use Exception; use JsonSerializable; use ReflectionProperty; class Libro implements JsonSerializable{ public const FECHA_HORA_MYSQL = "Y-m-d H:i:s"; public const FECHA_HORA_USUARIO = "d/m/Y H:i:s"; public const FECHA_HORA_ORACLE = "d-m-y H:i:s"; protected int $id; protected string $titulo; protected string $autor; protected string $genero; protected string $isbn; protected string $precio; protected DateTime $fecha_publicacion; protected string $editorial; protected string $paginas; protected bool $disponible; public function __construct(array $datos){ $this->id = $datos["id"]; $this->titulo = $datos["titulo"]; $this->autor = $datos["autor"]; $this->genero = $datos["genero"]; $this->isbn = $datos["isbn"]; $this->precio = $datos["precio"]; $this->fecha_publicacion = new DateTime($datos["fecha_publicacion"]); $this->editorial = $datos["editorial"]; $this->paginas = $datos["paginas"]; $this->disponible = $datos["disponible"]; } public function __get($propiedad){ if(!property_exists($this,$propiedad)){ throw new Exception("No existe la propiedad en el objeto"); } return $this->$propiedad; } public function __set($propiedad,$valor){ if(!property_exists($this,$propiedad)){ throw new Exception("No existe la propiedad en el objeto"); } $this->$propiedad = $valor; } public function toArray(): array { return get_object_vars($this); } public function __serialize(): array { return $this->toArray(); } public function __sleep(): array { // Accedemos a las propiedades foreach( $this as $propiedad => $valor ) { $propiedades[] = $propiedad; } return $propiedades; } public function jsonSerialize(): mixed { $objeto_json = []; foreach($this as $propiedad => $valor ) { $reflexion_propiedad = new ReflectionProperty($this, $propiedad); $tipo_datos = $reflexion_propiedad->getType()->getName(); if ( $tipo_datos === DateTime::class && $valor ) { $objeto_json[$propiedad] = $valor->format(self::FECHA_HORA_USUARIO); } else { $objeto_json[$propiedad] = $valor; } } return $objeto_json; } public function JSON(): string{ $datos = [ "id" => $this->id, "titulo" => $this->titulo, "autor" => $this->autor, "genero" => $this->genero, "isbn" => $this->isbn, "precio" => $this->precio, "fecha publicacion" => $this->fecha_publicacion, "editorial" => $this->editorial, "paginas" => $this->paginas, "disponible" => $this->disponible ]; return json_encode($datos); } } ?> ---- Server IP: 45.112.84.4 Probable Submitter: 80.90.5.137 (proxied: 2a0c:5a83:cc09:8c00:8c79:8374:c878:e62) ---- Manual Page -- https://php.net/manual/en/function.echo.php Edit -- https://main.php.net/note/edit/130358 Del: integrated -- https://main.php.net/note/delete/130358/integrated Del: useless -- https://main.php.net/note/delete/130358/useless Del: bad code -- https://main.php.net/note/delete/130358/bad+code Del: spam -- https://main.php.net/note/delete/130358/spam Del: non-english -- https://main.php.net/note/delete/130358/non-english Del: in docs -- https://main.php.net/note/delete/130358/in+docs Del: other reasons-- https://main.php.net/note/delete/130358 Reject -- https://main.php.net/note/reject/130358 Search -- https://main.php.net/manage/user-notes.php

« previous php.notes (#222212) next »