php如何调用静态方法函数,php高端功能?

用户投稿 61 0

关于“php如何调用静态方法”的问题,小编就整理了【4】个相关介绍“php如何调用静态方法”的解答:

php高端功能?

1.使用Per-Class常量。

用途:可以在不需要初始化该类的情况下使用:

例子:

class Man //定义Man类

{

const birthday = 19960101; //定义常量变量

}

//使用const修饰的变量,我们可以通过::操作符对其进行访问。例如:

echo Man::birthday;

//使用const修饰的变量是无法进行修改的,例如:

// Man::birthday=19990101;

//上面那句是会报语法错误的。

?>

执行结果:打印出变量值 也就是19960101

2.对静态方法的实现

用途:PHP可以在方法前面使用static关键字,该方法就可以在未初始化类的情况下通过类名::来进行调用,类似于上面。例如:

<?php

class Man //创建一个Man类

{

static function boy() //创建静态方法

{

return 'boy'; //函数返回字符串boy

}

}

echo Man::boy(); //打印函数的返回值,也就是boy

//但是在静态方法中,是不能使用this关键字的。因为可能会没有可以引用的对象实例

//通俗点说,就是一般我们调用函数是使用obj->method(),而$this就是当前的对象,但是因为

php静态类和非静态类的区别?

静态类和非静态类的主要区别:

主要区别在于静态类不能实例化,静态类编译器能够执行检查确保不是偶然的添加实例成员,C#编译器会自动把它标记为sealed,静态类中不能创建非静态的方法,即静态方法中只能创建静态方法,但在非静态类中可以调用静态方法。

静态方法能不能被继承?

静态属性和静态方法可以被继承,但是没有被重写(overwrite)而是被隐藏。原因:

1). 静态方法和属性是属于类的,调用的时候直接通过类名.方法名完成对,不需要继承机制及可以调用。如果子类里面定义了静态方法和属性,那么这时候父类的静态方法或属性称之为"隐藏"。如果你想要调用父类的静态方法和属性,直接通过父类名.方法或变量名完成,至于是否继承一说,子类是有继承静态方法和属性,但是跟实例方法和属性不太一样,存在"隐藏"的这种情况。

2). 多态之所以能够实现依赖于继承、接口和重写、重载(继承和重写最为关键)。有了继承和重写就可以实现父类的引用指向不同子类的对象。重写的功能是:"重写"后子类的优先级要高于父类的优先级,但是“隐藏”是没有这个优先级之分的。

3). 静态属性、静态方法和非静态的属性都可以被继承和隐藏而不能被重写,因此不能实现多态,不能实现父类的引用可以指向不同子类的对象。非静态方法可以被继承和重写,因此可以实现多态。

静态方法与非静态方法的区别?

静态方法在创建对象前就可以使用了,非静态方法必须通过new出来的对象调用。

如:

public class Per{

public static String getType(){

return "人类";

}

public String getName(){

return "张三";

}

}

上面这个类中的getType方法,在没有new对象前这就可以这样用:

String type=Per.getType();//type="人类";

而getName方法则不能这样使用,编译都不会通过

getName必须这样:

Per p=new Per();

String name=p.getName();//name="张三";

当然,getType方法也可能通过对象调用:

String type=p.getType();//type="人类";

综上所述:

静态方法是在创建实例之前就存在了,而非静态方法是在创建对象之后才有的。 

到此,以上就是小编对于“php如何调用静态方法”的问题就介绍到这了,希望介绍关于“php如何调用静态方法”的【4】点解答对大家有用。

抱歉,评论功能暂时关闭!