简单的xml对象

gar*_*eth 0 php session

您好我正在尝试将SimpleXMLElement的值保存到$ _SESSION,但这些值输入为"SimpleXMLElement Object".代码如下:

$xml = new SimpleXMLElement($auth_info);
$_SESSION[userName] = $xml->profile->preferredUsername; (garfx)
$_SESSION[email] =  $xml->profile->verifiedEmail;
$_SESSION[givenName] =  $xml->profile->name->givenName;
$_SESSION[lastName] =  $xml->profile->name->familyName;
Run Code Online (Sandbox Code Playgroud)

结果的例子

Array
(
[userName] => SimpleXMLElement Object
()
)
Run Code Online (Sandbox Code Playgroud)

我想要

Array
(
[userName] => garfx

)
Run Code Online (Sandbox Code Playgroud)

Mez*_*Mez 5

SimpleXML元素可以用作字符串,但是您需要将它们"转换"为字符串.

PHP中的转换是通过将数据类型添加到值前缀来完成的,

例如,

$foo = 1;
$bar = (string)$foo;
Run Code Online (Sandbox Code Playgroud)

将成为$bar包含字符"1"的字符串.

上述解决方案将是: -

$xml = new SimpleXMLElement($auth_info);
$_SESSION[userName] = (string)$xml->profile->preferredUsername; // (garfx)
$_SESSION[email] = (string)$xml->profile->verifiedEmail;
$_SESSION[givenName] = (string)$xml->profile->name->givenName;
$_SESSION[lastName] = (string)$xml->profile->name->familyName;
Run Code Online (Sandbox Code Playgroud)