使用$this变量访问方法和属性

php面向对象的编程方式中,在对象中的方法执行时会自动定义一个$this变量,这个变量表示对对象本身的引用。使用$this变量可以引用该对象的其他方法和属性,并使用"->"作为连接符,如下所示:

$this->属性;            //注意属性名前面没有"$"

$this->方法;

在使用$this引用对象自身的方法时,直接加方法名并为方法指定参数即可,如果引用的是类的属性,一定注意不要加"$"。

例如:

定义类MyClass,并在类中定义$name属性,使用该类的构造函数为$name属性初始化,定义getName()方法获取$name属性,最后定义printName()方法,在该方法中通过$this关键字调用getName()方法输出$name属性的值,代码如下:

<?php

class MyClass
{
    private $name;

    public function __construct($name)
    {
        $this->name = $name;
    }

    public function getName()
    {
        return $this->name;
    }

    public function printName()
    {
        echo $this->getName();
    }
}

$myClass = new MyClass("I Like PHP");
$myClass->printName();

运行结果为:

I Like PHP

注:初学者应该明确self、parent和$this关键字的区别,self关键字用来指向当前的类,而且该关键字通常用来访问类的静态成员、方法和常量。parent关键字用来指向父类,所以可以使用该关键字调用父类的属性和方法。$this变量用来在类体内调用自身的属性和方法。

时间: 2024-10-10 11:38:40

使用$this变量访问方法和属性的相关文章

0145 JavaScript创建对象的三种方式 之 字面量:创建,访问对象的属性&amp;方法,变量、属性、函数、方法总结

在 JavaScript 中,现阶段我们可以采用三种方式创建对象(object): 利用字面量创建对象 利用 new Object 创建对象 利用构造函数创建对象 5.2.1 利用字面量创建对象 5.2.1.1 创建 使用对象字面量创建对象:{ }. 就是花括号 { } 里面包含了表达这个具体事物(对象)的属性和方法: { } 里面采取键值对的形式表示 键:相当于属性名 值:相当于属性值,可以是任意类型的值(数字类型.字符串类型.布尔类型,函数类型等) 代码如下: var star = { na

类、对象、方法、属性和实例变量

放置方法的程序单元是类,类中提供一个或多个方法,为类执行任务. 方法执行一个任务,并可返回一个结果. 类的实例称为对象. 给对象发送消息称为一个方法调用,告诉对象要执行一个任务. 对象有属性,可以在程序中使用,这些属性在对象的类中用字段指定属性. public class Count//每个类声明包含关键字class加类名,public是访问修饰符 { //类通常有一个或多个方法,操纵属于该类的特定对象的属性,属性在类中声明表示为变量,这种变量在类中声明,放在方法体之外. //属性声明可以有ge

Objective-C语言介绍 、 Objc与C语言 、 面向对象编程 、 类和对象 、 属性和方法 、 属性和实例变量

Objective-C语言介绍 . Objc与C语言 . 面向对象编程 . 类和对象 . 属性和方法 . 属性和实例变量 1 第一个OC控制台程序 1.1 问题 Xcode是苹果公司向开发人员提供的集成开发环境(非开源),用于开发Mac OS X,iOS的应用程序.其运行于苹果公司的Mac操作系统下. 本案例要求使用集成开发工具Xcode编写OC的HelloWorld程序,在Xcode的控制台中, 1.2 方案 首先,启动集成开发工具Xcode. 然后,创建OC语言的工程. 最后,运行所创建的工

C# 常量,变量,字段,属性,方法

常量:指在程序编译时已经存在且在程序生命周期内不会发生改变的值,用const定义一个常量. private class TestA     --定义一个类时后边不加() { private const double Pi=3.14; private double GetPi()   --输出pi值得方法,后边带() { double t=pi; return t; } } 变量: 变量本身被用来存储特定类型的数据,可以根据需要随时改变变量中所存储的数据值.变量具有名称.类型和值.变量名是变量在程

面向对象中对象和类以及如何访问类中属性和方法

对象:客观存在的具体事物.某一个具体的个体 *类:具有相同行为和共同特征的对象的集合,类是人类脑海中一个抽象的概念,通过类创建对象 *类中的成员:1.成员属性(描述外部特征) 2.成员方法(描述功能行为)* 如何定义一个类: * [修饰符] class 类名{ * //1.属性的定义:与定义变量类似 * [修饰符] 数据类型 属性名; * //2.方法的定义 * [修饰符] 返回值类型 方法名(形参列表){ * //方法体; * } * } * 成员变量和局部变量的区别: * 1.作用域不同:成

C# 使用反射获取类的成员变量名、方法及属性的若干笔记

参考链接:http://blog.csdn.net/ccaakkee/article/details/2425950,作者:CSDN ccaakkee   http://blog.csdn.net/jaydawson/article/details/5539438,作者:CSDN jaydawson 代码: using System; using System.Collections.Generic; using System.Linq; using System.Text; using Sys

ie8 报错:意外地调用了方法或属性访问

在某场景中一句简单的js: $("#changeOption").text("增加"); 在 IE8 下面报错:'意外地调用了方法或属性访问' 改成:$("#changeOption").html("增加"); 报同样的错. 改成:document.getElementById('changeOption').innerText="增加"; 同样报错:"未知的运行时错误" 最后改成:$(

C#变量初始化问题:字段初始值无法引用非静态字段、方法或属性

http://www.cnblogs.com/bluestorm/p/3432190.html 问题:字段初始值设定项无法引用非静态字段.方法或属性的问题 下面代码出错的原因,在类中定义的字段为什么不能用? public class Test {public Test(){}public int Age=23;public int temp = Age;//ERROR 字段初始值设定项无法引用非静态字段.方法或属性} C#规定在类内部只能定义属性或者变量,并初始化,不能直接变量引用变量. 在初始

Java中的null对象也可以访问static成员变量和方法

声明:本博客为原创博客,未经允许,不得转载!小伙伴们如果是在别的地方看到的话,建议还是来csdn上看吧(链接为 http://blog.csdn.net/bettarwang/article/details/26515271),看代码和提问.讨论都更方便. 一般来说,一个类的对象要在实例化之后才可以访问类中的成员变量和方法.如果它还是null,通常意义上我们就认为它不能访问类中的成员.实际上确实不提倡这样,而且null对象确实不能访问实例成员(变量和方法),否则会引发NULLPointerExc