您好我正在尝试将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)
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)