我希望能够echo $domain
来自
$domain = $response['results']['$MYVAR']['shortUrl'];
我尝试过花括号和其他各种格式化$ MYVAR的方法,但语法错误。
非常欢迎!
编辑 - >的var_dump($响应):
object(stdClass)#1 (4) {
["errorCode"]=> int(0)
["errorMessage"]=> string(0) ""
["results"]=> object(stdClass)#2 (1) {
["http://www.domain.com"]=> object(stdClass)#3 (5) {
["userHash"]=> string(6) "oSEMki"
["shortKeywordUrl"]=> string(0) ""
["hash"]=> string(6) "oms2ZB"
["shortCNAMEUrl"]=> string(20) "http://bit.ly/LALALA"
["shortUrl"]=> string(20) "http://bit.ly/LALALA"
}
}
["statusCode"]=> string(2) "OK"
}
我可以看到“domain.com”元素很好,但是当我这样做时:
的var_dump($反应[ '结果'] [$ MYVAR]);
它返回NULL!这必须是$ domain = $ response ['results'] [$ MYVAR] ['shortUrl'];也失败了。奇怪!
- 编辑2 -
var_dump($MYVAR);
给出:
string(118) "http://www.domain.com"
答案 0 :(得分:4)
试试这个:
$domain = $response['results'][$MYVAR]['shortUrl'];
echo $domain;
你确定它存储在这样的三维数组中吗? 因为那看起来像是不必要的并发症。
答案 1 :(得分:1)
不加引号尝试
$domain = $response['results'][$MYVAR]['shortUrl'];
或使用双引号
$domain = $response['results']["$MYVAR"]['shortUrl'];
编辑:
对你的编辑做出反应。您正在访问变量,如关联数组,但该变量是stdObject的实例。因此,如果您想要访问它,您必须重新键入它:
$tmp = (array) $response;
$domain = $tmp['results'][$MYVAR]['shortUrl'];
或像对象
一样访问它$domain = $tmp->results->$MYWAR->shortUrl;
编辑2:
所以很奇怪,因为http://www.domain.com
长度不是118个字符,因为var_dump写道。
您在哪里以及如何填写变量$MYVAR
?
答案 2 :(得分:0)
$domain = $response['results'][$MYVAR]['shortUrl'];
$ MYVAR周围不需要报价。
答案 3 :(得分:0)
你试过没有$ MYVAR周围的报价吗?
答案 4 :(得分:0)
这是一个对象。
$domain = $response->results->$MYVAR->shortUrl;