Sobes.tech
Junior

Синфтин каймакчы ыкмаларын кайсынысыны билесиз?

sobes.tech AI

AIден жооп

PHPте "супер" деп аталган атайын ыкмалар бар. Алар автоматтык түрдө белгилүү иш-аракеттерде чакырылат. Алардын айрымдары:

  • __construct(): Класс жаңы экземпляр түзүлгөндө чакырылат. Объектти баштоо үчүн колдонулат.
  • __destruct(): Объект жок кылынганда чакырылат (мисалы, скрипттин иши аяктагандан кийин же unset() аркылуу). Ресурстарды бошотуу үчүн колдонулат.
  • __call($name, $arguments): Объекттин жеткиликтүү эмес (көрүнбөгөн) методу чакырылганда чакырылат. $name - чакырылган методдун аты, $arguments - анын аргументтеринин массиви.
  • __callStatic($name, $arguments): __call() сыяктуу, бирок статикалык жеткиликтүү эмес метод чакырылганда чакырылат.
  • __get($name): Объекттин жеткиликтүү эмес мүлкүн окуу аракетинде чакырылат. $name - мүлктүн аты.
  • __set($name, $value): Объекттин жеткиликтүү эмес мүлкүн жазуу аракетинде чакырылат. $name - мүлктүн аты, $value - коюлуучу мааниси.
  • __isset($name): isset() же empty() аркылуу жеткиликтүү эмес мүлктүн бар-жогун текшерүүдө чакырылат. $name - мүлктүн аты.
  • __unset($name): unset() аркылуу жеткиликтүү эмес мүлктү жок кылуу аракетинде чакырылат. $name - мүлктүн аты.
  • __sleep(): serialize() аркылуу объект сериализацияга даярдалганда чакырылат. Сериализацияга киргизүү керек болгон мүлктөрдүн аттарынын массивин кайтаруу керек.
  • __wakeup(): unserialize() аркылуу объект десериализациядан кийин чакырылат. Байланыштарды же ресурстарды калыбына келтирүү үчүн колдонулушу мүмкүн.
  • __toString(): Объектти жолго айландыруу аракетинде чакырылат (мисалы, echo менен чыгарышта). Объекттин жол түрүндөгү көрүнүшүн кайтаруу керек.
  • __invoke(...$args): Объектти функция катары колдонуу аракетинде чакырылат.
  • __set_state(array $properties): var_export() аркылуу объектти калыбына келтирүүдө чакырылат. var_export() тарабынан экспорттолгон мүлктөрдүн массивин алат.
  • __clone(): clone аркылуу объектти клондоо учурунда чакырылат. Терең көчүрүү үчүн колдонулат.

Бул ыкмаларды сак болуу менен колдонуу маанилүү, анткени алардын туура эмес колдонулушу коддун күтүүсүз жүрүм-турумуна алып келиши мүмкүн.