Помогите получить значение с масива

M
На сайте с 03.06.2012
Offline
73
1093

Здравствуйте, мне нужно из переменной

$GLOBALS
получить значение ["view"], так до самого масива содержавший нужное значение я добрался таким способом:

$GLOBALS["app"]->input
и данная строка выводит масив

 object(JInput)#9 (4) {
["options":protected]=>
array(0) {
}
["filter":protected]=>
object(JFilterInput)#10 (8) {
["tagsArray"]=>
array(0) {
}
["attrArray"]=>
array(0) {
}
["tagsMethod"]=>
int(0)
["attrMethod"]=>
int(0)
["xssAuto"]=>
int(1)
["tagBlacklist"]=>
array(22) {
[0]=>
string(6) "applet"
[1]=>
string(4) "body"
[2]=>
string(7) "bgsound"
[3]=>
string(4) "base"
[4]=>
string(8) "basefont"
[5]=>
string(5) "embed"
[6]=>
string(5) "frame"
[7]=>
string(8) "frameset"
[8]=>
string(4) "head"
[9]=>
string(4) "html"
[10]=>
string(2) "id"
[11]=>
string(6) "iframe"
[12]=>
string(6) "ilayer"
[13]=>
string(5) "layer"
[14]=>
string(4) "link"
[15]=>
string(4) "meta"
[16]=>
string(4) "name"
[17]=>
string(6) "object"
[18]=>
string(6) "script"
[19]=>
string(5) "style"
[20]=>
string(5) "title"
[21]=>
string(3) "xml"
}
["attrBlacklist"]=>
array(5) {
[0]=>
string(6) "action"
[1]=>
string(10) "background"
[2]=>
string(8) "codebase"
[3]=>
string(6) "dynsrc"
[4]=>
string(6) "lowsrc"
}
["_errors":protected]=>
array(0) {
}
}
["data":protected]=>
&array(4) {
["Itemid"]=>
string(3) "104"
["option"]=>
string(14) "com_virtuemart"
["view"]=>
string(8) "category"
["virtuemart_category_id"]=>
string(1) "1"
}
["inputs":protected]=>
array(1) {
["request"]=>
object(JInput)#132 (4) {
["options":protected]=>
array(0) {
}
["filter":protected]=>
object(JFilterInput)#10 (8) {
["tagsArray"]=>
array(0) {
}
["attrArray"]=>
array(0) {
}
["tagsMethod"]=>
int(0)
["attrMethod"]=>
int(0)
["xssAuto"]=>
int(1)
["tagBlacklist"]=>
array(22) {
[0]=>
string(6) "applet"
[1]=>
string(4) "body"
[2]=>
string(7) "bgsound"
[3]=>
string(4) "base"
[4]=>
string(8) "basefont"
[5]=>
string(5) "embed"
[6]=>
string(5) "frame"
[7]=>
string(8) "frameset"
[8]=>
string(4) "head"
[9]=>
string(4) "html"
[10]=>
string(2) "id"
[11]=>
string(6) "iframe"
[12]=>
string(6) "ilayer"
[13]=>
string(5) "layer"
[14]=>
string(4) "link"
[15]=>
string(4) "meta"
[16]=>
string(4) "name"
[17]=>
string(6) "object"
[18]=>
string(6) "script"
[19]=>
string(5) "style"
[20]=>
string(5) "title"
[21]=>
string(3) "xml"
}
["attrBlacklist"]=>
array(5) {
[0]=>
string(6) "action"
[1]=>
string(10) "background"
[2]=>
string(8) "codebase"
[3]=>
string(6) "dynsrc"
[4]=>
string(6) "lowsrc"
}
["_errors":protected]=>
array(0) {
}
}
["data":protected]=>
array(4) {
["Itemid"]=>
string(3) "104"
["option"]=>
string(14) "com_virtuemart"
["view"]=>
string(8) "category"
["virtuemart_category_id"]=>
string(1) "1"
}
["inputs":protected]=>
array(0) {
}
}
}
}

подскажите как получить

["view"]=>
string(8) "category"
. Спасибо всем за ответы!
forest25
На сайте с 12.09.2009
Offline
67
#1

Парсер лох =)

Лучше выложите листинг куда-нить на pastebin =)

Кстати откуда этот код?

Точно не скажу, но может что-то типа:

$app = $GLOBALS["app"]->input;

echo $app["data"]["view"];

Хотя скорее всего не заработает =)

VPS 512MB 20GB SSD KVM - 5$ (http://u.hmdw.me/digitalocean) | ИМХО о хостингах (http://u.hmdw.me/hosting)
M
На сайте с 03.06.2012
Offline
73
#2
forest25:
Парсер лох =)
Лучше выложите листинг куда-нить на pastebin =)

Кстати откуда этот код?
Точно не скажу, но может что-то типа:
$app = $GLOBALS["app"]->input;
echo $app["data"]["view"];

Хотя скорее всего не заработает =)

выложил вот ссылка:

http://pastebin.com/yYkhngtJ

пробовал

$app = $GLOBALS["app"]->input;

echo $app["data"]["view"];

выводит ошибку

Fatal error: Cannot use object of type JInput as array in Z:\home\foamart\www\templates\domains\index.php on line 72
minor
На сайте с 04.10.2010
Offline
70
#3

Ошибку переведите, она намекает что нельзя использовать массив как объект.

Пример ужасно читается, свойства там у вас защищенные, для доступа дочерних классов.

Можно попробовать так:

$app->data["view"]
PHP experience 2 year, comprehend seo
M
На сайте с 03.06.2012
Offline
73
#4
minor:
Ошибку переведите, она намекает что нельзя использовать массив как объект.
Пример ужасно читается, свойства там у вас защищенные, для доступа дочерних классов.
Можно попробовать так:

попробовал выводит

null

если бы было просто [data], то ваш пример заработал бы, а то что это поле защищено

[data:protected]
, именно это вводит в ступор
S5
На сайте с 04.01.2010
Offline
77
#5

Если нужно только получить данные из обьекта что мешает перевести его в массив? (array)$app ?

M
На сайте с 03.06.2012
Offline
73
#6
sg552:
Если нужно только получить данные из обьекта что мешает перевести его в массив? (array)$app ?

Перевел появился масив

['*data']=>['view']

пробую вывести дамп

var_dump ($app['*data']['view'])
пишет null, такжн пробовал без звездочки и без второго параметра все равно нул.
AA
На сайте с 10.03.2008
Offline
40
#7

$GLOBALS["app"]->input

Возвращает вам не массив, а объект

$GLOBALS["app"]->input->data

Это обращение к свойству объекта

$GLOBALS["app"]->input->data['views']

Так как у вас в свойстве объекта записан массив, обращаемся к его ключу

S5
На сайте с 04.01.2010
Offline
77
#8

var_dump ((array)$app) в студию

M
На сайте с 03.06.2012
Offline
73
#9

спасибо, все получилось :)

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий