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

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

WBOY
WBOYOriginal
2016-05-25 16:47:491216Durchsuche

在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;);
?>


教程地址:

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

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn