接口:

1 不能够定义静态变量(常量除外)

2 定义的常量 const YOUCONST = VALUE,不能在子类中覆盖,在子类中以 interfaceName::YOUCONST的方式调用

3 不能使用parent::YOUCONST的方式调用接口的常量

类:

1 const 变量可以使用parent::YOUCONST的方式,className::YOUCONST的方式在子类中访问

2 const定义的变量,在子类中可以被覆盖

3 当然在类中可以定义静态成员变量了

示例:

<?php
interface TestInterface
{
const CONSTVAR = 'aaa';
static staticvar = 111;
public function alert($str);
}

class TestClass implements TestInterface
{
const CONSTVAR = 'bbb';
public function __CONSTRUCT()
{
echo TestInterface::CONSTVAR;
}
public function alert($str)
{
echo $str;
}
public function __DESTRUCT()
{
}
}

$test1 = new TestClass();
?>

PHP接口中的静态变量、常量与类中静态变量、常量的区别的更多相关文章

  1. Jsp中如何通过Jsp调用Java类中的方法

    Jsp中如何通过Jsp调用Java类中的方法 1.新建一个项目,在src文件夹下添加一个包:如:cn.tianaoweb.com; 2.再在包中添加一个类:如 package com; public ...

  2. static静态变量在c++类中的应用实例

    这个static 如果写在类中,那么就可以得到一个局部的静态变量,也就是说可以实现在类内保存某个特殊值不随函数释放而消失的作用.应用中由于赋初值的位置不对而报错,错误提示为:“无法解析外部符号 ... ...

  3. java中接口(interface)和虚基类(abstract class)的区别

    在Java语言中,abstract class和interface是支持抽象类定义的两种机制.正是由于这两种机制的存在,才赋予了Java强大的面向对象能力.abstract class和interfa ...

  4. spring boot:使用validator做接口的参数、表单、类中多字段的参数验证(spring boot 2.3.1)

    一,为什么要做参数验证? 永远不要相信我们在后端接收到的数据, 1,防止别人通过接口乱刷服务:有些不怀好意的人或机构会乱刷我们的服务,例如:短信接口, 相信大家可能很多人在工作中遇到过这种情况 2,防 ...

  5. Python 类中__init__()方法中的形参与如何修改类中属性的值

    一.__init__()方法 如果__init__()方法为 class Cat(): def __init__(self,num) : self.num=num Python中类的__init__( ...

  6. Python类中的装饰器在当前类中的声明与调用

    [本文出自天外归云的博客园] 我的Python环境:3.7 在Python类里声明一个装饰器,并在这个类里调用这个装饰器.代码如下: class Test(): xx = False def __in ...

  7. java中方法内可以调用同一个类中的方法

    在同一个类中,java的普通方法的相互调用,可以使用this+点号+方法名,也可省略this+点号,java编 译器会自动补上.

  8. Java中在实例化一个类时,这个类中没有初始值的int类型成员变量i,i的值是不是0?

    java中有两种类型一种是数值性,另一种是类变量数值性变量的初始值为0,类变量的初始化为null没做初始化成员变量int性变量是0, 在java中有这么一条规则,声明在方法中的变量在使用时必须要初始化 ...

  9. Java 9 中,我们可以在匿名类中使用 <> 操作符

    不说了,直接上代码: public class NewTest { public static void main(String[] args) { N<Integer> n1 = new ...

随机推荐

  1. WebStorm添加多个项目到当前工程目录

    File-> Settings -> Directories -> Add Content Root,选择你要加入的Project 点击OK -> Apply -> OK ...

  2. asp.net怎样解决高并发问题

    队列+多线程+couchbase缓存 ,解决高并发问题. using System; using System.Collections.Generic; using System.Linq; usin ...

  3. 对象第复制operator=

    类机制中有默认的对象复制操作符=,自定义对象复制需要注意一个问题,如果有遇到指针指向的资源是需要释放的,这时需要毫不留情释放,否则内存空间的泄露就不可避免.复制操作与拷贝构造函数的参数是一致的,只是在 ...

  4. linux系统故障分析与排查

    在处理Linux系统出现的各种故障时,故障的症状是最先发现的,而导致这以故障的原因才是最终排除故障的关键.熟悉Linux系统的日志管理,了解常见故障的分析与解决办法,将有助于管理员快速定位故障点.“对 ...

  5. GIS可视化——热点图

    一.简介 SuperMap iClient for JavaScript提供了热点图(HeatMapLayer),用于渲染数据衰减趋势.颜色渐变的效果. 原理:在客户端直接渲染的栅格图,热点图的渲染需 ...

  6. 由内省引出JavaBean的应用

    IntroSpector-->javaBean-->特殊的java类 get和set方法 ReflectPoint pt1 = new ReflectPoint(3,5); String ...

  7. JVM —— 移除永久代

    近期准备生产环境 JDK 升级到 1.8,本地先升级了下,发现 -XX:PermSize 和 -XX:MaxPermSize 已经失效,取而代之的是一个新的区域 -- Metaspace(元数据区). ...

  8. UNP学习笔记(第十八章 路由套接字)

    路由套接字上支持3种类型的操作 1). 进程能通过写路由套接字向内核发消息. 2). 进程能通过路由套接字从内核读消息. 3). 进程可以用sysctl函数得到路由表或列出所有已配置的接口. 数据链路 ...

  9. 3DES

    3DES是继DESeasy被破解后的DES加密升级版,它属于对称加密. 可指定24位长度的密钥.在java API中也有事实上现,代码例如以下: /** * 3DES 的Java SDK API 实现 ...

  10. SQL之相关语法及操作符

    概述:UNION.SELECT INTO.INSERT INTO SELECT.SQL约束 UNION操作符 UNION操作符用于合并两个或多个SELECT语句的结果集 请注意,UNION内部的每个S ...