
20.01.2017, 02:10
|
|
Постоянный
Регистрация: 18.03.2016
Сообщений: 663
С нами:
5344886
Репутация:
441
|
|
Сообщение от t0ma5
↑
хотя __set непонятно как вызвать..
У меня в тестовом скрипте жёсткая каша, хрен разберёшь Побыстрому накидал небольшой скрипт для вызова __get/__set,надеюсь разберёшься:
.SpoilerTarget" type="button">Spoiler
PHP код:
[COLOR="#000000"][COLOR="#0000BB"][/COLOR][COLOR="#007700"][/COLOR][COLOR="#0000BB"]map[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#0000BB"]$map[/COLOR][COLOR="#007700"]; [/COLOR][COLOR="#0000BB"]$this[/COLOR][COLOR="#007700"]->[/COLOR][COLOR="#0000BB"]realObject[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#0000BB"]$realObject[/COLOR][COLOR="#007700"]; } public function[/COLOR][COLOR="#0000BB"]__set[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$name[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#0000BB"]$value[/COLOR][COLOR="#007700"]) { } public function[/COLOR][COLOR="#0000BB"]__get[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$name[/COLOR][COLOR="#007700"]) { } public function[/COLOR][COLOR="#0000BB"]offsetExists[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$name[/COLOR][COLOR="#007700"]) { return isset([/COLOR][COLOR="#0000BB"]$this[/COLOR][COLOR="#007700"]->[/COLOR][COLOR="#0000BB"]map[/COLOR][COLOR="#007700"][[/COLOR][COLOR="#0000BB"]$name[/COLOR][COLOR="#007700"]]); } public function[/COLOR][COLOR="#0000BB"]offsetUnset[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$name[/COLOR][COLOR="#007700"]) { throw new[/COLOR][COLOR="#0000BB"]Exception[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#DD0000"]'Not supported !'[/COLOR][COLOR="#007700"]); } public function[/COLOR][COLOR="#0000BB"]offsetSet[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$name[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#0000BB"]$value[/COLOR][COLOR="#007700"]) { return[/COLOR][COLOR="#0000BB"]$this[/COLOR][COLOR="#007700"]->[/COLOR][COLOR="#0000BB"]__set[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$name[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#0000BB"]$value[/COLOR][COLOR="#007700"]); } public function[/COLOR][COLOR="#0000BB"]offsetGet[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$name[/COLOR][COLOR="#007700"]) { return[/COLOR][COLOR="#0000BB"]$this[/COLOR][COLOR="#007700"]->[/COLOR][COLOR="#0000BB"]__get[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$name[/COLOR][COLOR="#007700"]); } } class[/COLOR][COLOR="#0000BB"]Debug[/COLOR][COLOR="#007700"]{ private[/COLOR][COLOR="#0000BB"]$debugStateName[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#DD0000"]'flag'[/COLOR][COLOR="#007700"]; private[/COLOR][COLOR="#0000BB"]$_instance[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#DD0000"]'ccc'[/COLOR][COLOR="#007700"]; } class[/COLOR][COLOR="#0000BB"]User[/COLOR][COLOR="#007700"]extends[/COLOR][COLOR="#0000BB"]GenericMapper[/COLOR][COLOR="#007700"]{ private[/COLOR][COLOR="#0000BB"]$name[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#DD0000"]'aaa'[/COLOR][COLOR="#007700"]; private[/COLOR][COLOR="#0000BB"]$id[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#DD0000"]'bbb'[/COLOR][COLOR="#007700"]; public function[/COLOR][COLOR="#0000BB"]__construct[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$realObject[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#0000BB"]$map[/COLOR][COLOR="#007700"]) { [/COLOR][COLOR="#0000BB"]parent[/COLOR][COLOR="#007700"]::[/COLOR][COLOR="#0000BB"]__construct[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$realObject[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#0000BB"]$map[/COLOR][COLOR="#007700"]); } } class[/COLOR][COLOR="#0000BB"]Session[/COLOR][COLOR="#007700"]{ } [/COLOR][COLOR="#0000BB"]$o[/COLOR][COLOR="#007700"]= new[/COLOR][COLOR="#0000BB"]Session[/COLOR][COLOR="#007700"]; [/COLOR][COLOR="#0000BB"]$o[/COLOR][COLOR="#007700"]->[/COLOR][COLOR="#0000BB"]user[/COLOR][COLOR="#007700"]= new[/COLOR][COLOR="#0000BB"]User[/COLOR][COLOR="#007700"](new[/COLOR][COLOR="#0000BB"]Debug[/COLOR][COLOR="#007700"], array([/COLOR][COLOR="#DD0000"]'name'[/COLOR][COLOR="#007700"]=> array([/COLOR][COLOR="#DD0000"]'type'[/COLOR][COLOR="#007700"]=>[/COLOR][COLOR="#DD0000"]'function'[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#DD0000"]'target'[/COLOR][COLOR="#007700"]=>[/COLOR][COLOR="#DD0000"]'showNice'[/COLOR][COLOR="#007700"]))); echo[/COLOR][COLOR="#DD0000"]"\n__get:\n"[/COLOR][COLOR="#007700"].[/COLOR][COLOR="#0000BB"]urlencode[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]base64_encode[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]serialize[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$o[/COLOR][COLOR="#007700"]))).[/COLOR][COLOR="#DD0000"]"\n"[/COLOR][COLOR="#007700"]; [/COLOR][COLOR="#0000BB"]$o[/COLOR][COLOR="#007700"]= new[/COLOR][COLOR="#0000BB"]User[/COLOR][COLOR="#007700"](new[/COLOR][COLOR="#0000BB"]Debug[/COLOR][COLOR="#007700"], array([/COLOR][COLOR="#DD0000"]'user'[/COLOR][COLOR="#007700"]=> array([/COLOR][COLOR="#DD0000"]'type'[/COLOR][COLOR="#007700"]=>[/COLOR][COLOR="#DD0000"]'function'[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#DD0000"]'target'[/COLOR][COLOR="#007700"]=>[/COLOR][COLOR="#DD0000"]'showNice'[/COLOR][COLOR="#007700"]))); echo[/COLOR][COLOR="#DD0000"]"\n__set:\n"[/COLOR][COLOR="#007700"].[/COLOR][COLOR="#0000BB"]urlencode[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]base64_encode[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]serialize[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$o[/COLOR][COLOR="#007700"]))).[/COLOR][COLOR="#DD0000"]"\n"[/COLOR][COLOR="#007700"]; [/COLOR][COLOR="#0000BB"]?> [/COLOR][/COLOR]
|
|
|