Как объяснить 'это' ключевое слово лучшим и простым способом?

Я использую 'это' ключевое слово в течение долгого времени. Но когда кто-то просит, чтобы я объяснил это, я смущен это, как объяснить это. Я знаю, что могу использовать это в методе класса для доступа к любой переменной и методу того же класса.

    class MyClass{

      function MyMethod1(){
        echo "Hello World";
      }

      function MyMethod2(){
        $this->MyMethod1();
      }

    }

Действительно ли это - объект класса, который мы не должны инициализировать и можем использоваться только в классе или чем-либо еще. Как объяснить?

Спасибо

5
задан Naveed 20 September 2010 в 06:09
поделиться

6 ответов

Вот что я в итоге сделал, чтобы решить свою проблему, пока не увидел простой ответ @ granade опубликовано. Я нашел эту технику здесь http://www.mikesdotnetting.com/Article/108/Handling-Legacy-URLs-with-ASP.NET-MVC .

public class LegacyUrlRoute : RouteBase
{
    public override RouteData GetRouteData(HttpContextBase httpContext)
    {
        const string status = "301 Moved Permanently";
        var request = httpContext.Request;
        var response = httpContext.Response;
        var legacyUrl = request.Url.ToString();
        var newUrl = "";
        var id = request.QueryString.Count != 0 ? request.QueryString[0] : "";

        if (legacyUrl.Contains("d.aspx"))
        {
            newUrl = "Dispute/Details/" + id;
            response.Status = status;
            response.RedirectLocation = newUrl;
            response.End();
        }
        return null;
    }

    public override VirtualPathData GetVirtualPath(RequestContext requestContext,
                RouteValueDictionary values)
    {
        return null;
    }
}

public static void RegisterRoutes(RouteCollection routes)
{
    // all my other routes
    routes.Add(new LegacyUrlRoute());
}
-121--4013139-

этот ссылается на текущий экземпляр объекта класса.

этот является неявно параметром, передаваемым методам класса: он имеет область действия метода и разрешает доступ ко всем членам объекта.

-121--455755-

Класс является пресс-формой для объекта: он определяет, как объект выглядит (переменные) и что он может делать (функции).

При создании экземпляра класса создается объект. При создании класса можно использовать «this» для ссылки на сам объект. Вот почему нельзя задать «это», потому что это связано с объектом. Это особая переменная, доступная только для чтения.

13
ответ дан 18 December 2019 в 06:22
поделиться

Как показывает их имя, методы экземпляра работают на экземплярах класса. Как они знают, какой для работы? Вот что является этот параметр .

Когда вы вызываете метод экземпляра, вы действительно невидимо проходите в дополнительном параметре: объект, чтобы вызвать его. Например, когда у вас есть это:

class Basket {
  public function a() {
    $this-> ...;
    // ...
  }
  // ...
}

и вы звоните $ quey_basket-> A () , за кулисами, вы на самом деле вы называете что-то вроде корзина :: a ($ quey_basket) . Теперь A () знает, какой корзина , с которой вы хотите работать. Этот специальный параметр - это то, что это относится к: текущий объект, с которым вы имеете дело.

2
ответ дан 18 December 2019 в 06:22
поделиться

Несколько человек объяснили это в похожих терминах, но думали, что добавлю это, когда говорят с людьми, незнакомыми с объектно-ориентированным программированием, я объясню, что определение класса Является ли план, как для дома, а «это» - это фактический дом, с которым вы работаете в этот момент. Там могут быть другие дома, которые выглядят точно так же, но это конкретный объект (дом).

2
ответ дан 18 December 2019 в 06:22
поделиться

Коротко: $ Это дает доступ к переменным объекта (и методах) Редактировать: В классе :) Редактировать 2: (но не в статических методах класса ): D

2
ответ дан 18 December 2019 в 06:22
поделиться

Это ссылается на текущий экземпляр объекта класса.

Это - неявно параметр, передаваемый методам класса: он имеет значение для метода и позволяет получить доступ ко всем участникам объекта.

5
ответ дан 18 December 2019 в 06:22
поделиться

Класс - это шаблон или «умереть» для объекта.

позволяет использовать пример классического «велосипеда». Там есть много любимых велосипедов. Тем не менее, мы создали один велосипед, и мы можем использовать ключевое слово «Это» для ссылки на «этот» велосипед.

В более подробном техническом смысле класс - это шаблон для объекта, который будет создан. Во время выполнения, после созданного объекта, или был создан экземпляр само по себе, мы можем затем использовать ключевое слово «Это», чтобы ссылаться на экземпляр, который запускается этот метод.

1
ответ дан 18 December 2019 в 06:22
поделиться
Другие вопросы по тегам:

Похожие вопросы: