PHP 8.4.1 Released!

igbinary_serialize

(PECL igbinary >= 1.1.1)

igbinary_serializeGera uma representação binária compacta e armazenável de um valor

Descrição

igbinary_serialize(mixed $value): string|false

Gera uma representação armazenável de um valor.

Isso é útil para armazenar ou passar valores PHP sem perder seu tipo e estrutura.

Para transformar a string serializada em um valor PHP novamente, a função igbinary_unserialize() pode ser usada.

Parâmetros

value

O valor a ser serializado. igbinary_serialize() lida com todos os tipos, exceto o tipo resource e alguns objects (veja nota abaixo). Mesmo arrays que contenham referências a si mesmo podem ser processados ​​por igbinary_serialize(). As referências circulares dentro do array ou object que está sendo serializado também serão armazenadas. Qualquer outra referência será perdida.

Ao serializar objetos, igbinary tentará chamar as funções membro __serialize() ou __sleep() antes da serialização. Isso permite que o objeto faça qualquer limpeza de última hora, etc., antes de ser serializado. Da mesma forma, quando o objeto é restaurado usando igbinary_unserialize(), a função membro __unserialize() ou __wakeup() será chamada.

Nota:

Membros privados de objects têm o nome da classe anexado ao nome do membro; membros protegidos têm um '*' prefixando o nome do membro. Esses valores prefixados possuem bytes nulos em ambos os lados.

Valor Retornado

Retorna uma string contendo uma representação de fluxo de bytes de value que pode ser armazenada em qualquer lugar.

Observe que esta é uma string binária que pode incluir qualquer valor de byte e precisa ser armazenada e tratada como tal. Por exemplo, a saída de igbinary_serialize() geralmente deve ser armazenada em um campo BLOB em um banco de dados, em vez de um campo CHAR ou TEXT.

Exemplos

Exemplo #1 Exemplo de igbinary_serialize()

<?php
$ser
= igbinary_serialize(['test', 'test']);
echo
urlencode($ser), "\n";
var_export(igbinary_unserialize($ser));
?>

O exemplo acima produzirá:

%00%00%00%02%14%02%06%00%11%04test%06%01%0E%00
array (
  0 => 'test',
  1 => 'test',
)

Notas

Nota:

Observe que muitos objetos integrados no PHP não podem ser serializados. No entanto, aqueles com essa habilidade implementam a interface Serializable ou os métodos mágicos __serialize()/__unserialize() ou __sleep()/__wakeup(). Se uma classe interna não atender a nenhum desses requisitos, ela não poderá ser serializada de forma confiável com nenhum serializador.

Existem algumas exceções históricas à regra acima, onde alguns objetos internos poderiam ser serializados sem implementar a interface ou expor os métodos.

Veja Também

adicione uma nota

Notas Enviadas por Usuários (em inglês)

Não há notas de usuários para esta página.
To Top