Автор Тема: PHP каква е тази конструкция $w['parent']()[0]  (Прочетена 1045 пъти)

Naka

  • Участник
  • *****
  • Публикации: 2630
    • Профил
PHP. Kаква е тази конструкция при масивите?

$w['parent']()[0]

Т.е. какво означават тези обикновенните скоби () в средата?

този израз дава синтактична грешка в php 5.3.x но очевидно работи при php 5.4
Искам да го адаптирам към php 5.3 но не знам каkво означава. За първи път виждам такова нещо. В документацията също нищо не намирам.
------

още една подобна конструкция:
Код:
$w['stack']();
« Последна редакция: Юни 21, 2019, 12:43 от Naka »
Активен

Perl - the only language that looks the same before and after encryption.

go_fire

  • Участник
  • *****
  • Публикации: 5145
  • Distribution: Дебиан Сид
  • Window Manager: ROX-Desktop / е17
  • кашик с гранатомет в танково поделение
    • Профил
    • WWW
Re: PHP каква е тази конструкция $w['parent']()[0]
« Отговор #1 -: Юни 21, 2019, 12:26 »
Ако имам правилни спомени от php, това е „променлива променлива“. Не заеквам, казвам Дюран Дюран два пъти да го запомните.

С две думи (ако не греша), този израз значи, че името на масива се конструира в движение и се взема първия му елемент.
Активен

В $por4e2 e истината  ;)

***

Aко даваха стипендия за най-глупави, щях да съм човека с най-много Mини Kупъри

***

Reborn since 1998 || 15.09.2007 totally М$ free && conscience clear

Naka

  • Участник
  • *****
  • Публикации: 2630
    • Профил
Re: PHP каква е тази конструкция $w['parent']()[0]
« Отговор #2 -: Юни 21, 2019, 12:29 »
Variable variable е с два долара:   $$w

----
Код:
$w['parent']()[0]

да не искаш да кажеш че това е името на функцията???
т.е. в $w['parent'] например се съдържа 'my_func'

а $w['parent']() тогава извиква  my_func()

а пък $w['parent']()[0] връща нулевият елемент от резултата на масива на функцията???  my_func()[0]   <---- това вече го разбрах че е новост в php5.4

Шантава работа..Така ли е наистина. Тук нещо понамерих:
https://www.php.net/manual/en/functions.variable-functions.php

ако наистина е така насочването беше успешно [_]3 и си заслужи бирата.
« Последна редакция: Юни 21, 2019, 13:08 от Naka »
Активен

Perl - the only language that looks the same before and after encryption.

Yasen6275

  • Участник
  • *****
  • Публикации: 526
    • Профил
Re: PHP каква е тази конструкция $w['parent']()[0]
« Отговор #3 -: Юни 21, 2019, 12:47 »
Naka нали си  наясно че поддръжката на 7.1 е само за security до началото на декември,  а на 7.2 до края на ноември догодина? Подчератавам 7 (седем) 1 и 2.
Активен

makeme

  • Участник
  • *****
  • Публикации: 625
  • Distribution: Many
  • Window Manager: Mate
    • Профил
Re: PHP каква е тази конструкция $w['parent']()[0]
« Отговор #4 -: Юни 21, 2019, 12:56 »
Naka нали си  наясно че поддръжката на 7.1 е само за security до началото на декември,  а на 7.2 до края на ноември догодина? Подчератавам 7 (седем) 1 и 2.
https://www.cloudlinux.com/hardenedphp
 ;)
Активен

Distributions:  UbuntuMate 14.04; 15.10; 16.04, CentOS 6.x, 7.x, Kali 2.0 ...

Naka

  • Участник
  • *****
  • Публикации: 2630
    • Профил
Re: PHP каква е тази конструкция $w['parent']()[0]
« Отговор #5 -: Юни 21, 2019, 13:05 »
Naka нали си  наясно че поддръжката на 7.1 е само за security до началото на декември,  а на 7.2 до края на ноември догодина? Подчератавам 7 (седем) 1 и 2.

Много им здраве. Като му дойде времето ще се мигрира.
Ти кажи нещо по въпроса ако знаеш.
Активен

Perl - the only language that looks the same before and after encryption.

go_fire

  • Участник
  • *****
  • Публикации: 5145
  • Distribution: Дебиан Сид
  • Window Manager: ROX-Desktop / е17
  • кашик с гранатомет в танково поделение
    • Профил
    • WWW
Re: PHP каква е тази конструкция $w['parent']()[0]
« Отговор #6 -: Юни 21, 2019, 13:19 »
Добре леко пообърках терминологията. Това е наследство от perl, дето такива магии са си част от живота.

Мейк, мисля, че точно ти беше дал една връзка, дето Мариян обясняваше, че за свои клиенти поддържат все още php 4 и скоро няма да спрат, нищо, че в официалните им ценови оферти за домуване не присъства.

Нищо не умира напълно в паяжината. Има толкова много живи, стари системи, че не е за вярване. И това едва ли ще се промени, колкото и от 1984-та да бутат. Старите неща са прости, новите са сложни. Старите искат малко ресурс, новите са лами. Старите може да се поддържат с малки екипи, новите не могат. И така нататък. Не са за всеки.
Активен

В $por4e2 e истината  ;)

***

Aко даваха стипендия за най-глупави, щях да съм човека с най-много Mини Kупъри

***

Reborn since 1998 || 15.09.2007 totally М$ free && conscience clear

4096bits

  • Участник
  • *****
  • Публикации: 3103
    • Профил
Re: PHP каква е тази конструкция $w['parent']()[0]
« Отговор #7 -: Юни 21, 2019, 14:26 »
И старото почти не можеш да го хакнеш, защото не си го и виждал дори.
Активен

As they say in Mexico, "Dasvidaniya!" Down there, that's two vidaniyas.

go_fire

  • Участник
  • *****
  • Публикации: 5145
  • Distribution: Дебиан Сид
  • Window Manager: ROX-Desktop / е17
  • кашик с гранатомет в танково поделение
    • Профил
    • WWW
Re: PHP каква е тази конструкция $w['parent']()[0]
« Отговор #8 -: Юни 21, 2019, 15:01 »
И старото почти не можеш да го хакнеш, защото не си го и виждал дори.

За съжаление последното не е вярно. Старите неща са доста по-кракваеми. С времето се пише все по-сигурно. Колкото по-назад се връщаме, толкова по-беззащитни са били нещата. Забележи, че всички течове на информация са свързани със стари системи. И да има някакви изключения, са малко.
Активен

В $por4e2 e истината  ;)

***

Aко даваха стипендия за най-глупави, щях да съм човека с най-много Mини Kупъри

***

Reborn since 1998 || 15.09.2007 totally М$ free && conscience clear

4096bits

  • Участник
  • *****
  • Публикации: 3103
    • Профил
Re: PHP каква е тази конструкция $w['parent']()[0]
« Отговор #9 -: Юни 21, 2019, 16:37 »
Това е така, но колко от съвременните хакерчета са изучавали и са се ръчкали със стари системи?
Активен

As they say in Mexico, "Dasvidaniya!" Down there, that's two vidaniyas.

Naka

  • Участник
  • *****
  • Публикации: 2630
    • Профил
Re: PHP каква е тази конструкция $w['parent']()[0]
« Отговор #10 -: Юни 22, 2019, 11:13 »
PHP го наблюдавам от много отдавана. И мисля, че всички промени дето ги правят са за хубаво. За разлика от съвременните програми дето развалят всичко - тип systemД.
Промените в PHP-то са много обмислени, все са козметични или оправяне на някои функции.

Обаче не трябва да се бърка приложни програми с език за програмиране. Ако при програмите тенденцията при новите версии е за разваляне и тромавост, то езика за програмиране трябва да е константен. Все пак е език.

Дали програмата има секюрити дупки зависи не толкова от езика, колкото от програмиста. Може на PHP4 да направиш сигурен код. А може и на php7 всичко да усереш.

« Последна редакция: Юни 22, 2019, 11:17 от Naka »
Активен

Perl - the only language that looks the same before and after encryption.

go_fire

  • Участник
  • *****
  • Публикации: 5145
  • Distribution: Дебиан Сид
  • Window Manager: ROX-Desktop / е17
  • кашик с гранатомет в танково поделение
    • Профил
    • WWW
Re: PHP каква е тази конструкция $w['parent']()[0]
« Отговор #11 -: Юни 22, 2019, 11:46 »
Да де, ама га пишехме на php 3 и 4, езика отговаряше напълно на името си: personal home page. Беше далеч преди да започне да конкурира жабата. И тогава правехме неща от сорта да създаваме променлива от параметър получен по get-ова заявка. Например първите защити срещу инжекции почнахме да ги правим едва при пет. А за разните XSS и подобни почти не бяхме чували за тях.
Активен

В $por4e2 e истината  ;)

***

Aко даваха стипендия за най-глупави, щях да съм човека с най-много Mини Kупъри

***

Reborn since 1998 || 15.09.2007 totally М$ free && conscience clear

Naka

  • Участник
  • *****
  • Публикации: 2630
    • Профил
Re: PHP каква е тази конструкция $w['parent']()[0]
« Отговор #12 -: Юни 22, 2019, 12:25 »
Има едно изключение при което php4-5 е било по сигурно от php5.4 -php7  >:D

имаше едно Magic Quotes. https://www.php.net/manual/en/security.magicquotes.php беше по default и автоматично ескейпваше всички кавички "" ''  с \ в променливите които идват от GET/POST ..Ако такава променлива (автоматично ескейпната) я включиш в mysql завяка - това автоматично предпазва от mysql инжекция.

Т.е за начинащият кодер, който понятие си няма от mysql инжекция, кодът е бил сигурен.

Сега това е махнато..........И хубаво че е махнато, щото не е хубаво php-то да ти прави нещо автоматично зад гърба ти. Обаче начинещ кодер на php7, който понятие си няма за  mysql инжекция, никога няма да се сети да ескейпне променивите преди да ги включи в заявка. Т.е парадоксално но за такъв кодер php7 е по несигурно.

« Последна редакция: Юни 22, 2019, 12:39 от Naka »
Активен

Perl - the only language that looks the same before and after encryption.

go_fire

  • Участник
  • *****
  • Публикации: 5145
  • Distribution: Дебиан Сид
  • Window Manager: ROX-Desktop / е17
  • кашик с гранатомет в танково поделение
    • Профил
    • WWW
Re: PHP каква е тази конструкция $w['parent']()[0]
« Отговор #13 -: Юни 22, 2019, 13:10 »
Това си спомням, че пълни базата с наклонени черти. Още щом разбрах за съществуването му, реших да не го ползвам. Не помня и не съм сигурен, но ми се струва лесно заобиколимо, като сам сложиш наклонени черти. Така взаимно се изолират и обезсилват.
Активен

В $por4e2 e истината  ;)

***

Aко даваха стипендия за най-глупави, щях да съм човека с най-много Mини Kупъри

***

Reborn since 1998 || 15.09.2007 totally М$ free && conscience clear

Naka

  • Участник
  • *****
  • Публикации: 2630
    • Профил
Re: PHP каква е тази конструкция $w['parent']()[0]
« Отговор #14 -: Юни 22, 2019, 13:32 »
не не. Не пълни базата с черти, защото mysql-a un-ескипва всичко.
А пък и не може потребителя да го заобиколи просто като добави  черти, защото самата добавена черта / също автоматично се ескейпва //.

Както и да е. сега има addslashes(), mysql_escape_string().. mysql_real_escape_string()
ама последните две гледам вече са ги забранили в php7. Като му дойде времето тогава ще му мислим. ::)
« Последна редакция: Юни 22, 2019, 13:36 от Naka »
Активен

Perl - the only language that looks the same before and after encryption.

Подобни теми
Заглавие Започната от Отговора Прегледи Последна публикация
Игнориране на Parent Directory
Настройка на програми
zeridon 1 856 Последна публикация Мар 08, 2005, 22:43
от zeridon