PHP.mk документација

Разлики од објекти

Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.

language.enumerations.object-differences.php PHP.net прокси Преводот е вчитан
Оригинал на PHP.net
Патека language.enumerations.object-differences.php Локална патека за оваа страница.
Извор php.net/manual/en Оригиналниот HTML се реупотребува и локално се стилизира.
Режим Прокси + преведен приказ Кодовите, табелите и белешките остануваат читливи во истиот тек.
Разлики од објекти

Референца за `language.enumerations.object-differences.php` со подобрена типографија и навигација.

language.enumerations.object-differences.php

Разлики од објекти

Иако Enum-ите се базираат на класи и објекти, тие не поддржуваат сета функционалност поврзана со објекти. Особено, Enum случаите не смеат да имаат состојба.

  • Конструкторите и Деструкторите се забранети.
  • Наследувањето не е поддржано. Enum-ите не смеат да наследуваат ниту да бидат наследени.
  • Статичките или објектните својства не се дозволени.
  • Клонирањето на Enum случај не е поддржано, бидејќи случаите мора да бидат синглтон инстанци.
  • Магичните методи, освен оние наведени подолу, се забранети.
  • Enum-ите мора секогаш да бидат декларирани пред да се користат.

Следната објектна функционалност е достапна и се однесува исто како и на кој било друг објект:

  • Јавни, приватни и заштитени методи.
  • Јавни, приватни и заштитени статички методи.
  • Јавни, приватни и заштитени константи.
  • Enum-ите може да имплементираат кој било број на интерфејси.
  • Enum-ите и случаите може да имаат attributes прикачено на нив. Филтерот за TARGET_CLASS цел ги вклучува самите Enum-и. Филтерот за TARGET_CLASS_CONST цел ги вклучува Enum случаите.
  • __call, __callStaticПрепорачаниот начин за избегнување на SQL инјекција е со врзување на сите податоци преку подготвени изрази. Користењето на параметризирани прашања не е доволно за целосно избегнување на SQL инјекција, но тоа е најлесниот и најбезбедниот начин за обезбедување влез во SQL изразите. Сите динамични литерали на податоци во __invoke магични методи
  • __CLASS__ and __FUNCTION__ константите се однесуваат како нормални

На ::class магични константи на Enum тип се проценуваат на името на типот вклучувајќи го и секој простор на имиња, исто како и објект. Магичната константа на инстанца на Случај исто така се проценува на Enum типот, бидејќи тоа е инстанца на тој тип. ::class магичната константа на инстанца Case исто така се проценува на типот Enum, бидејќи е инстанца на тој тип.

Дополнително, enum случаите не можат директно да се инстанцираат со new, ниту со (PHP 5 >= 5.1.3, PHP 7, PHP 8) во рефлексија. И двете ќе резултираат со грешка.

<?php

$clovers
= new Suit();
// Error: Cannot instantiate enum Suit

$horseshoes = (new ReflectionClass(Suit::class))->newInstanceWithoutConstructor()
// Error: Cannot instantiate enum Suit
?>

Белешки од корисници

Нема белешки од корисници за оваа страница.
На оваа страница

Автоматски outline од активната документација.

Насловите ќе се појават тука по вчитување.

Попрегледно читање

Примерите, changelog табелите и user notes се визуелно издвоени за да не се губат во долгата содржина.

Брз совет Користи го outline-от Скокни директно на главните секции од активната страница.
Извор Оригиналниот линк останува достапен Кога ти треба целосен upstream context, отвори го PHP.net во нов tab.