рдиреЗрд╕реНрдЯреЗрдб рдПрд░реЗрд╕ рдФрд░ рдореИрдЬрд┐рдХ рдореЗрдердбреНрд╕

рд╢рд╛рдпрдж рд╣рд░ рдХреЛрдИ PHP рдореЗрдВ рдЬрд╛рджреВ (рдЬрд╛рджреВ) рдХреЗ рддрд░реАрдХреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирддрд╛ рд╣реИ, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ __get рдФрд░ __set рддрд░реАрдХреЗред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдПрдХ рдЕрдкреНрд░рд┐рдп рд╡рд┐рд╢реЗрд╖рддрд╛ рд╣реИ рдпрджрд┐ рдЖрдкрдХреЛ рдиреЗрд╕реНрдЯреЗрдб рд╕рд░рдгреА рдХреЗ рдореВрд▓реНрдп рдХреЛ рдмрджрд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд░рд▓ рдФрд░ рд╕реБрд░реБрдЪрд┐рдкреВрд░реНрдг рд╕рдорд╛рдзрд╛рди рд╣реИред





рдЗрд╕ рд╡рд░реНрдЧ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ:

рдХрдХреНрд╖рд╛ MyClass {

рд╕рдВрд░рдХреНрд╖рд┐рдд $ рдбреЗрдЯрд╛ = рд╕рд░рдгреА ( 'рдХреБрдЫ' => рд╕рд░рдгреА ( 'рдЙрдк' => 'рдбреЗрдЯрд╛' ) ) ;



рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╕рдорд╛рд░реЛрд╣ __set ( $ рдирд╛рдо , $ рдореВрд▓реНрдп ) {

$ рдпрд╣ -> рдбреЗрдЯрд╛ [ $ рдирд╛рдо ] = $ рдореВрд▓реНрдп ;

}

рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╕рдорд╛рд░реЛрд╣ __get ( $ рдирд╛рдо ) {

$ рдпрд╣ рд▓реМрдЯрд╛рдПрдБ -> рдбреЗрдЯрд╛ [ $ рдирд╛рдо ] ;

}

}




рдпрджрд┐ рдЖрдк рдЗрд╕ рддрд░рд╣ $ рдбреЗрдЯрд╛ рд╕рд░рдгреА рдХреЗ рдХреБрдЫ рдХреБрдВрдЬреА рдХреЗ рдЙрдк рдореВрд▓реНрдп рдХреЛ рдмрджрд▓рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╣реИрдВ:



$ рдореЗрд░рд╛ = рдирдпрд╛ MyClass ( ) ;



$ рдореЗрд░рд╛ -> рдХреБрдЫ [ 'рдЙрдк' ] = 'рдкрд░реАрдХреНрд╖рдг' ; // рдорд╛рди рдХреЛ рдмрджрд▓рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ



рдЧреВрдВрдЬ $ рдореЗрд░реА -> рдХреБрдЫ [ 'рдЙрдк' ] ; // рдкреНрд░рд┐рдВрдЯ 'рдбреЗрдЯрд╛'




рдиреЛрдЯрд┐рд╕ рдЖрдПрдЧрд╛:

рд╕реВрдЪрдирд╛: рдУрд╡рд░рд▓реЛрдб рд╕рдВрдкрддреНрддрд┐ рдХрд╛ рдЕрдкреНрд░рддреНрдпрдХреНрд╖ рд╕рдВрд╢реЛрдзрди MyClass :: $ рдХреБрдЫ рдХрд╛ рдХреЛрдИ рдкреНрд░рднрд╛рд╡ рдирд╣реАрдВ рд╣реИ




рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдПрдХ рдФрд░ рд╡рд░реНрдЧ рд▓рд┐рдЦреЗрдВрдЧреЗ (рдореИрдВрдиреЗ рдЗрд╕реЗ ActiveArray рдХрд╣рд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдореЗрд░реЗ ActiveRecord рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реИ):



рдХрдХреНрд╖рд╛ ActiveArray {

рд╕рдВрд░рдХреНрд╖рд┐рдд $ рд╕рд░рдгреА ;



рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╕рдорд╛рд░реЛрд╣ __construct ( $ рд╕рд░рдгреА ) {

$ рдпрд╣ -> рд╕рд░рдгреА = & $ рд╕рд░рдгреА ;

}



рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╕рдорд╛рд░реЛрд╣ __set ( $ рдирд╛рдо , $ рдореВрд▓реНрдп ) {

$ рдпрд╣ -> рд╕рд░рдгреА [ $ рдирд╛рдо ] = $ рдореВрд▓реНрдп ;

}



рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╕рдорд╛рд░реЛрд╣ __get ( $ рдирд╛рдо ) {

рдЕрдЧрд░ ( is_array ( рдпрд╣ $ -> рд╕рд░рдгреА [ $ рдирд╛рдо ] ) )

рдирдпрд╛ рд╕реНрд╡рдкрди рд▓реМрдЯрд╛рдПрдБ ( рдФрд░ $ рдпрд╣ -> рд╕рд░рдгреА [ $ рдирд╛рдо ] ) ;

рдЕрдиреНрдпрдерд╛

$ рдпрд╣ рд▓реМрдЯрд╛рдПрдБ -> рд╕рд░рдгреА [ $ рдирд╛рдо ] ;

}

}




рдФрд░ MyClass рд╡рд░реНрдЧ рдХреА __get рд╡рд┐рдзрд┐ рдХреЛ рдереЛрдбрд╝рд╛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░реЗрдВ:

рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╕рдорд╛рд░реЛрд╣ __get ( $ рдирд╛рдо ) {

рдЕрдЧрд░ ( is_array ( рдпрд╣ $ -> рдбреЗрдЯрд╛ [ $ рдирд╛рдо ] ) )

рдирдП ActiveArray рдХреЛ рд╡рд╛рдкрд╕ рдХрд░реЗрдВ ( рдФрд░ $ рдпрд╣ -> рдбреЗрдЯрд╛ [ $ рдирд╛рдо ] ) ;

рдЕрдиреНрдпрдерд╛

$ рдпрд╣ рд▓реМрдЯрд╛рдПрдБ -> рдбреЗрдЯрд╛ [ $ рдирд╛рдо ] ;

}




рдЕрдм рдЖрдк рдЗрд╕ рддрд░рд╣ рд╕реЗ рдиреЗрд╕реНрдЯреЗрдб рдПрд░реЗрдЬрд╝ рдПрдХреНрд╕реЗрд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

$ рдореЗрд░рд╛ -> рдХреБрдЫ -> рдЙрдк = 'рдкрд░реАрдХреНрд╖рдг' ;

рдЧреВрдВрдЬ $ рдореЗрд░реА -> рдХреБрдЫ -> рдЙрдк ; // рдкреНрд░рд┐рдВрдЯ 'рдкрд░реАрдХреНрд╖рдг'



$ рдореЗрд░реА -> рдХреБрдЫ = рд╕рд░рдгреА ( 'рдПрдмреАрд╕реА' => 123 ) ;

рдЧреВрдВрдЬ $ рдореЗрд░реА -> рдХреБрдЫ -> рдПрдмреАрд╕реА ; // '123' рдХреЛ рдкреНрд░реЛрдбреНрдпреВрд╕ рдХрд░реЗрдЧрд╛




рдЖрдкрдХрд╛ рдзреНрдпрд╛рди рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж!



All Articles