| |||||
Свойства в классах PHP. Property (properies) in PHP classes (like C#)Отличием языка C# от большинства других языков является наличие понятия свойства.
Свойство отражает ту или иную черту (аспект) класса. Часто, хотя не всегда, это просто значение поля с почти идентичным Инкапсуляция – сокрытие внутренней структуры данных и реализации методов объекта от остальной программы. Другим объектам доступен только интерфейс объекта, через который осуществляется все взаимодействие с ним.лат.In – в + Capsula – ящичек. Ниже приведён простой пример использования свойств в C#. using System;
namespace Properties class TestProperties
{ private string name; /// <summary> /// Определение свойства /// </summary> public string Name { /// <summary> /// Тело метода get определяет, что происходит, когда /// используется идентификатор свойства, например, с правой стороны /// операции присваивания или в качестве аргумента метода /// </summary> set { name = value;} /// <summary> }/// Тело метода set определяет, что происходит, когда /// используется идентификатор свойства, например, с левой стороны /// операции присваивания. В определении свойства должен присутствовать /// хотя бы один из методов (или оба) /// </summary> get { return name; }
class Program } PHP4В PHP 4.x.x механизма свойств нет. И обычно используют для доступа к полям следующие способы:
Понятно, что 1) удобен в случае, если свойства являются простыми типами данных и не требуют проверок или каких либо действий над ними при чтении/записи, либо если в будущем понадобиться переходить на PHP 5.x.x, в котором есть get/set методы.
Пример:
<?php
Варианты 2) и 3) предназначены либо для предварительной обработки свойств, либо для private/protected свойств.
Пример:
<?php
Пример:
<?phpPHP5
В PHP 5.x.x как вызовы методов, так и операции доступа к свойствам могут быть перегружены с использованием методов __call(),
Пример:
<?phpИнформационные ресурсы
Комментариев нет.
[Показать комментарии/форму]
| |||||