首页 php教程 php手册 php中final static $this关键字学习笔记

php中final static $this关键字学习笔记

May 25, 2016 pm 04:47 PM
$this final static

在php中final static $this关键字主要是用在类中或对象中,下面我来把我学习final static $this笔记记录下来,有需要了解的朋友可参考参考.

final关键字

php final关键字用来在一个函数或者类名称前面,表明该函数不能被重写或者该类不能被继承.

1、final方法不能被重写.

如果不希望类中某个方法被子类重写,只需要在这个方法前加上关键字final,即设置final方法.

实例代码如下:

<?php
class ex1 {
    final function fn1() {
        return "php";
    }
}
class ex2 extends ex1 {
    function fn1() {
        return "html";
    }
}
$p = new ex2();
echo $p->fn1();
?>
登录后复制

加了final关键字的方法不能被重写,运行出错.

2、final类不能被继承.

被声明了final的类不能被继承,否则出错.

实例代码如下:

<?php
final class ex1 {
    private $name;
}
class ex2 extends ex1 {
    private $age;
}
?>
登录后复制

static关键字

php static关键字不仅可以用来声明一个静态变量,在类中同样可以声明静态的属性或者方法,成为“类属性”或“类方法”.

1、声明了静态的属性和方法后,在类中不能用$this关键字来引用,可以使用下面两种方法引用:

在类中:self::静态成员名称

在类外:类名称::静态成员名称

2、访问该类时,可不必实例化,直接使用类名称::静态成员名称的格式.

静态属性实例:

实例代码如下:

<?php
class user {
    private static $count = 10;
    private static $sum = 1;
    public function __construct() {
        for ($i = 1; $i < 11; $i++) {
            self::$sum = self::$sum * self::$count; /* 调用静态变量 */
            self::$count--;
        }
    }
    public function getCount() {
        return self::$sum;
    }
}
$user1 = new user();
echo $user1->getCount();
?>
登录后复制

静态方法实例:

实例代码如下:

<?php
class Math {
    public static function sum($num1, $num2) {
        return $num1 + $num2;
    }
    public static function product($num1, $num2) {
        return $num1 * $num2;
    }
}
$a = 88;
$b = 100;
echo "两数之和为: ";
echo "<br>";
echo Math::sum($a, $b);
echo "<P>";
$a = 66;
$b = 88;
echo "两数之积为: ";
echo "<br>";
echo Math::product($a, $b);
?>
登录后复制

$this关键字

为了解决php类和对象中变量与属性的命名冲突和不确定性问题,引入了”$this”关键字来调用当前的对象.

在类中调用当前对象的属性和方法,必须使用”$this->”关键字;$this在构造函数中指该构造函数所创建的新对象;方法内的局部变量不属于对象,不使用$this关键字取值.

使用$this关键字,我们可以在类中调用对象属性或者方法.

1、调用变量

实例代码如下:

<?php
class user {
    private $n;
    function __construct() {
        $name = "Mike";
        echo $this->n = $name;
    }
}
$p = new user();
?>
登录后复制

2、调用方法

实例代码如下:

<?php
class cal {
    public function sum($a, $b) {
        return $a + $b;
    }
    public function prt($a, $c) {
        return $a * $c;
    }
    public function result($a, $b, $c) {
        $a = $this->sum($a, $b);
        return $this->prt($a, $c);
    }
}
$c = new cal();
echo "(2+3)*10= " . $c->result(&#39;2&#39;, &#39;3&#39;, &#39;10&#39;);
?>
登录后复制


教程地址:

欢迎转载!但请带上文章地址^^

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

<🎜>:泡泡胶模拟器无穷大 - 如何获取和使用皇家钥匙
4 周前 By 尊渡假赌尊渡假赌尊渡假赌
北端:融合系统,解释
4 周前 By 尊渡假赌尊渡假赌尊渡假赌
Mandragora:巫婆树的耳语 - 如何解锁抓钩
3 周前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

热门话题

Java教程
1675
14
CakePHP 教程
1429
52
Laravel 教程
1333
25
PHP教程
1278
29
C# 教程
1257
24
PHP Fatal error: Using $this when not in object context解决方法 PHP Fatal error: Using $this when not in object context解决方法 Jun 25, 2023 am 08:52 AM

在PHP开发中,当你想使用类的成员变量或者方法时,常常会遇到“PHPFatalerror:Using$thiswhennotinobjectcontext”的错误提示信息。这个错误提示是由于使用$this关键字访问类成员时出现了错误的上下文环境导致的。为了解决这个问题,下面我们将介绍一些解决方法。确保代码在类的内部进行检查代码是否在类

Java中final、finally、finalize的区别 Java中final、finally、finalize的区别 Feb 19, 2024 pm 12:16 PM

Java中final、finally、finalize的区别,需要具体代码示例在Java编程中,经常会遇到final、finally、finalize这三个关键词,它们虽然拼写相似,但却有不同的含义和用法。本文将详细解释这三个关键词的区别,同时给出代码示例以帮助读者更好地理解。一、final关键字final关键字可以用于类、方法和变量。它的作用是使被修饰的类

在Java中,仅使用final关键字可以定义一个常量吗? 在Java中,仅使用final关键字可以定义一个常量吗? Sep 20, 2023 pm 04:17 PM

常量变量是其值固定且程序中只存在一个副本的变量。一旦你声明了一个常量变量并给它赋值,你就不能在整个程序中再次改变它的值。与其他语言不同,Java不直接支持常量。但是,你仍然可以通过声明一个变量为静态和final来创建一个常量。静态-一旦你声明了一个静态变量,它们将在编译时加载到内存中,即只有一个副本可用。Final-一旦你声明了一个final变量,就不能再修改它的值。因此,你可以通过将实例变量声明为静态和final来在Java中创建一个常量。示例 演示classData{&am

java final关键字的作用是什么 java final关键字的作用是什么 Nov 25, 2022 pm 04:26 PM

在java中,final可以用来修饰类、方法和变量。final修饰类,表示该类是无法被任何其他类继承的,意味着此类在一个继承树中是一个叶子类,并且此类的设计已被认为很完美而不需要进行修改或扩展。final修饰类中的方法,表示该类是无法被任何其他类继承的,不可以被重写;也就是把该方法锁定了,以防止继承类对其进行更改。final修饰类中的变量,表示该变量一旦被初始化便不可改变。

Java中final对象的创建方式是什么? Java中final对象的创建方式是什么? Apr 11, 2024 pm 02:00 PM

Java中创建final对象有两种方法:声明final变量或使用final修饰符声明类。声明final变量时,对象通过初始化器创建;声明final类时,该类实例不可变。重要的是,final对象的引用仍然可以改变,但它们指向的对象不可变。

Java中的最终变量 Java中的最终变量 Sep 24, 2023 pm 08:49 PM

最终变量只能显式初始化一次。声明为Final的引用变量永远不能重新分配以引用不同的对象。但是,对象内的数据是可以更改的。因此,对象的状态可以更改,但引用不能更改。对于变量,final修饰符通常与static一起使用以使常量成为类变量。示例publicclassTest{  finalintvalue=10;  //Thefollowingareexamplesofdeclaringconstants: &a

c语言static的作用和用法是什么 c语言static的作用和用法是什么 Jan 31, 2024 pm 01:59 PM

c语言static的作用和用法:1、变量作用域;2、生命周期;3、函数内部;4、修饰全局变量;5、修饰函数;6、其他用途;详细介绍:1、变量作用域,当一个变量前有static关键字,那么这个变量的作用域被限制在声明它的文件内,也就是说,这个变量是“文件级作用域”,这对于防止变量的“重复定义”问题很有用;2、生命周期,静态变量在程序开始执行时初始化一次,并在程序结束时销毁等等。

C语言中static关键字的实际应用场景及使用技巧 C语言中static关键字的实际应用场景及使用技巧 Feb 21, 2024 pm 07:21 PM

C语言中static关键字的实际应用场景及使用技巧一、概述static是C语言中的一个关键字,用于修饰变量和函数。它的作用是改变其在程序运行过程中的生命周期和可见性,使得变量和函数具有静态的特性。本文将介绍static关键字的实际应用场景及使用技巧,并通过具体的代码示例进行说明。二、静态变量延长变量的生命周期使用static关键字修饰局部变量可以将其生命周期

See all articles