Вопрос

Есть ли встроенный способ узнать, является ли данная переменная сеанса сериализованным объектом? Скажем, я получаю значение типа $ _SESSION ['foo'], но я не знаю, было ли оно изначально строкой или это сериализованный объект. Есть какой-то способ проверить, или после сериализации PHP просто видит строку как строку как строку?

Это было полезно?

Решение

Это довольно распространенное заблуждение, что вам нужно вручную сериализовать объекты, прежде чем запускать их в сеанс. Это не относится к делу. Вы можете просто назначить экземпляр объекта для слота в $ _ SESSION , и PHP автоматически сериализует и десериализует его для вас между запросами.

Другие советы

Строка является строкой является строкой. Я думаю, что лучшее, что вы сможете сделать, это просто попытаться десериализовать его, и если это работает, это работает. Если это не так, это не так.

Единственным другим вариантом будет использование регулярного выражения, чтобы увидеть, выглядит ли оно " как сериализованный объект. Просто запустить unserialize () на этом может быть проще.

Вы можете использовать is_a ... Вытащите его из сеанса и посмотрите, вам просто нужно знать имя класса для проверки.

if (is_a(

Вы можете использовать is_a ... Вытащите его из сеанса и посмотрите, вам просто нужно знать имя класса для проверки.

if (

Вы можете использовать is_a ... Вытащите его из сеанса и посмотрите, вам просто нужно знать имя класса для проверки.

if (is_a(

Вы можете использовать is_a ... Вытащите его из сеанса и посмотрите, вам просто нужно знать имя класса для проверки.

<*>

Похоже, PHP5 имеет более простой метод:

<*>

http://www.php.net/manual/en /function.is-a.php SESSION['foo'], 'UserInfoObject')) { // We have one }

Похоже, PHP5 имеет более простой метод:

<*>

http://www.php.net/manual/en /function.is-a.php SESSION['foo'] instanceof UserInfoObject) { // We have one }

Похоже, PHP5 имеет более простой метод:

<*>

http://www.php.net/manual/en /function.is-a.php SESSION['foo'], 'UserInfoObject')) { // We have one }

Похоже, PHP5 имеет более простой метод:

<*>

http://www.php.net/manual/en /function.is-a.php

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top