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.