Вы можете.
В результате PHP видит $b64_decoded
как неопределенную и неустановленную переменную, потому что вы связали ее в своем операторе if без правильного разделения.
Смотрите это:
if( $b64_decoded = base64_decode($b64_encoded) && $unserialized = unserialize($b64_decoded) )
PHP считает, что &&
имеет более высокий приоритет над =
. Ваш код эффективен:
$b64_decoded = (base64_decode($b64_encoded) && $unserialized) = unserialize($b64_decoded)
Что, кажется, не имеет никакого логического смысла.
Итак, мы должны сообщить PHP приоритет операций и какие элементы сгруппированы вместе. Мы можем сделать это, поместив наш оператор в (
)
Например:
if( ($b64_decoded = base64_decode($b64_encoded)) && $unserialized = unserialize($b64_decoded) )
^ ^
PHP теперь понимает приоритет оператора, как вы указали.