php基础知识总结大全,php基础知识回顾 —— 常量

您现在的位置是:网站首页>>PHP>>php

php基础知识回顾 —— 常量

发布时间:2019-01-23 17:23:08作者:wangjian浏览量:489点赞量:0

在PHP中有这样一类变量,当变量值被定义之后,它的值就不可更改,这类变量我们称之为常量,常量分为我们自己定义的常量(常量)以及PHP自己预定义常量(魔术常量)两类

一:常量

常量是一个简单值的标识符。该值在脚本中不能改变。

一个常量由英文字母、下划线、和数字组成,但数字不能作为首字母出现。 (常量名不需要加 $ 修饰符)。

注意: 常量在整个脚本中都可以使用

在PHP中我们使用define()来定义常量,在php5.3之后,我们可以使用const关键字在类定义的外部定义常量

定义常量

define()定义常量基本语法define ( string $name , mixed $value [, bool $case_insensitive = false ] )

参数说明:

name:必选参数,常量名称,即标志符。

value:必选参数,常量的值。

case_insensitive :可选参数,如果设置为 TRUE,该常量则大小写不敏感。默认是大小写敏感的。

例:<?php

// 区分大小写的常量名

define("TEST", "测试常量");

echo TEST;    // 输出 "测试常量"

const定义常量<?php

const TEST = '测试常量';

echo '测试常量';

const和define的区别:

1:使用const使得代码简单易读,const本身就是一个语言结构,而define是一个函数。另外const在编译时要比define快很多。

2:const用于类成员变量的定义,一经定义,不可修改。define不可以用于类成员变量的定义,可用于全局常量。

3:const可在类中使用,define不能

4:const不能再条件语句中定义常量

常量在定义后,默认是全局变量,可以在整个运行的php脚本的任何地方使用

二:魔术常量

php有八个魔术常量,分别为:__LINE__,__FILE__,__DIR__,__FUNCTION__,__CLASS__,__TRAIT__,__METHOD__,__NAMESPACE__

1:__LINE__(返回文件中当前的行号)

2:__FILE__(文件的完整路径和文件名。如果用在被包含文件中,则返回被包含的文件名)

3:__DIR__(文件所在的目录。如果用在被包括文件中,则返回被包括的文件所在的目录,等价于dirname(__FILE__))

4:__FUNCTION__(返回该函数被定义时的名字)

5:__CLASS__(返回该类被定义时的名字)

6:__TRAIT__:

自 PHP 5.4.0 起,PHP 实现了代码复用的一个方法,称为 traits

例:

从基类继承的成员被插入的 SayWorld Trait 中的 MyHelloWorld 方法所覆盖。其行为 MyHelloWorld 类中定义的方法一致。优先顺序是当前类中的方法会覆盖 trait 方法,而 trait 方法又覆盖了基类中的方法<?php

class Base {

public function sayHello() {

echo 'Hello ';

}

}

trait SayWorld {

public function sayHello() {

parent::sayHello();

echo 'World!';

}

}

class MyHelloWorld extends Base {

use SayWorld;

}

$o = new MyHelloWorld();

$o->sayHello();

7:__METHOD__(返回该方法被定义时的名字)

8:__NAMESPACE__(返回当前命名空间的名称)

下面对于__TRAIT__进行额外说明

当有多个trait时,通过逗号分隔,在 use 声明列出多个 trait,可以都插入到一个类中

例:<?php

trait Hello {

public function sayHello() {

echo 'Hello ';

}

}

trait World {

public function sayWorld() {

echo 'World';

}

}

class MyHelloWorld {

use Hello, World;

public function sayExclamationMark() {

echo '!';

}

}

$o = new MyHelloWorld();

$o->sayHello();

$o->sayWorld();

$o->sayExclamationMark();

根据上面的魔术方法,可以获取当前脚本的文件名称substr(__FILE__,strlen(__DIR__)-strlen(__FILE__)+1)

272a2ff497ff398701eef161070cd122.png

0

+1

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/469953.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Android Studio 下使用git -- 个人,本地版本控制

第一步&#xff1a;下载安装git 下载地址 : https://git-scm.com/downloads 第二步&#xff1a;Android Studio 下配置git路径。 配置之后&#xff0c;Test弹出如下成功的提示即可。 第三步&#xff1a;创建版本库 选择项目的根目录比较适合。 第四步&#xff1a;添加需要版本控…

oracle忽略除数为0,ora-01476除数为0的解决办法,oracle中decode()的使用

执行报表查询&#xff0c;固定的一个时间点没有数据&#xff0c;应该是有数据的&#xff0c;把前一个时间节点往前调是有的&#xff0c;往后调也有bebug报错把sql放到数据库中&#xff0c;发现提示如截图解决办法&#xff0c;oracle中的decode()select decode(b,0,0,a/b*100) …

Java GridBagLayout 简单使用

这里只介绍了很基础布局构建及使用&#xff0c;主要是关于 GridBagLayout. 首先整套流程大概是&#xff0c; 声明一个 GridBagLayout 对象 private GridBagLayout gridBagLayoutFrame new GridBagLayout(); 然后把当前类的容器布局管理器设置为 GridBagLayout this.setLayout(…

Angular之简单的登录注册

使用Angular实现了一个简单的登录注册的功能........ 涉及到的Angular知识点很少 主要是这个功能的实现...(*^__^*) 嘻嘻…… 里面涉及到的知识点记录: 1.本地存储的操作 localStorage 获取本地存储的值 window.localStorage.getItem(key)-->value (得到的数据是字符串&qu…

微信扫码下载iosAPP

1.首先在应用宝上传你的安卓APP应用&#xff0c;AppStore已经有了APP 2.进入应用宝app应用管理中心&#xff0c;点击“微下载”&#xff0c;然后里面的微下载链接地址就可以用了&#xff0c;可以看到ios可以通过应用宝再跳到AppStore就可以实现下载了转载于:https://www.cnblog…

linux中的加法函数,上下文管理练习(为加法函数计时)

上下文管理(为加法函数计时)为加法函数计时使用装饰器显示该函数的执行时长使用上下文管理显示该函数的执行时长装饰器实现import timeimport datetimefrom functools import wrapsdef logger(fn):wraps(fn) # wraps(fn)(wrapper)def wrapper(*args, **kw):start datetime.dat…

07数组与接口

1、运行TextInherists.java 示例&#xff0c;观察输出&#xff0c;注意总结父类与子类之间构造方法的的调用关系&#xff0c;修改parent构造方法的代码&#xff0c;显式调用grandparent另一个构造函数。 源代码&#xff1a; class GrandParent{ public GrandParent(){ System.o…

windows 访问linux中的mongodb,MongoDB的linux系统下的安装与连接

一 安装MongoDB的服务下载Linux系统下的MongoDB安装包上传压缩包到linux服务器中&#xff0c;解压到对应的安装目录下mkdir /usr/local/mongodbtar -zxvf mongodb-linux-x86_64-4.0.10.tgzmv mongodb-linux-x86_64-4.0.10 /usr/local/mongodb新建目录&#xff0c;分别用来存储数…

linux sqlserver 管理工具,Linux连接SqlServer的图形化工具SQuirrel

SQuirrel SQL一款基于java的数据库管理工具。所以可以运行在任意平台上&#xff0c;除了界面丑一点。在windows上我绝对不会选的&#xff0c;navicat多好。安装下载地址&#xff1a;https://sourceforge.net/projects/squirrel-sql/?sourcetyp_redirect在控制台运行&#xff1…

JDK源码包结构分类

最近查看JDK源码时&#xff0c;无意间发现几个类在陌生包里&#xff1a;com.sun.*、sun.*、org.*&#xff0c;google了一把总结了下以备他人搜索&#xff0c;如内容有误欢迎指正&#xff01;Jre库包含的jar文件(jdk1.6)&#xff1a;resources.jar、rt.jar、jsse.jar、jce.jar、…

GJM :Sql 各种语句 以及函数 [转载]

版权声明&#xff1a;本文原创发表于 【请点击连接前往】 &#xff0c;未经作者同意必须保留此段声明&#xff01;如有侵权请联系我删帖处理&#xff01;1.更改数据库的名称 2.表中有数据的情况下再添加列、删除列 3.在SQLServer 中各种查询语句的使用示例 4.模糊查询的语句 5.…

linux中断处理体系结构分析(一),Linux中断处理体系结构分析(二)

1.中断处理的体系结构我们知道编写设备驱动程序一定要用到中断处理函数&#xff0c;这在驱动程序的编写中&#xff0c;占据很重要的一部分。在响应一个特定的中断的时候&#xff0c;内核会执行一个函数&#xff0c;该函数叫做中断处理程序(interrupt handler)或中断服务例程(in…

c语言作业题五六章答案,数据结构(C语言版)第五六章习题答案

数据结构(C语言版)第五六章习题答案,人民邮电出版社,答案很详细。(15)设F是一个森林&#xff0c;B是由F变换得的二叉树。若F中有n个非终端结点&#xff0c;则B中右指针域为空的结点有( )个。A&#xff0e; n-1 B&#xff0e;n C&#xff0e; n1 D&#xff0e; n22&#xff0e;应…

Android中土司(Toast)的使用

Android中Toast的使用 什么是土司(Toast)? Toast是Android系统提供的一种非常好的提示方式,在程序中可以使用它将一些短小的信息通知给用户,这些信息会在一段时间后自动消失,并且不会占用任何的屏幕空间. 下面我们通过代码来体验一下土司在Android中的使用 1 import android.a…

atoll找不到标识符c语言,C/C++编程笔记:C++中的atol,atoll和atof函数

1、atol()此函数将作为参数传递给函数调用的C类型字符串转换为长整数。它解析C字符串str&#xff0c;将其内容解释为整数&#xff0c;并作为long int类型的值返回。该函数丢弃出现在字符串开头的空白字符&#xff0c;直到找到非空白字符为止。如果C字符串str中的非空白字符序列…

c语言指针改良,重新认识C语言指针(上)(示例代码)

? 独创性并不是首次观察某种新事物&#xff0c;而是把旧的、很早就是已知的&#xff0c;或者是人人都视而不见的事物当新事物观察&#xff0c;这才证明是有真正的独创头脑 —尼采本文已经收录至我的GitHub,欢迎大家踊跃star 和 issues。https://github.com/midou-tech/article…

HT68F30控制GPG96244QS1 TFT液晶屏

资料上显示是SPI总线控制、在SPENB由高变底的时候起动传输、由低到高的时候停止转输、并且传送的时候先传高位的数据、现在没有效果出来&#xff08;正在找问题&#xff09; 没有效果的意思是&#xff1a; 1、LCD屏没有图像、只有背光在亮 2、还没有找到一个寄存器或者一种方…

linux —— shell 编程(文本处理)

导读 本文为博文 linux —— shell 编程&#xff08;整体框架与基础笔记&#xff09;的第4小点的拓展。&#xff08;本文所有语句的测试均在 Ubuntu 16.04 LTS 上进行&#xff09; 目录基本文本处理流编辑器sedawk模式扫描与处理语言1、基本文本处理sort :用于排序&#xff0c;…

ub c语言,操作系统之LRU算法 C语言链表实现

LRU是Least Recently Used的缩写&#xff0c;即最近最少使用&#xff0c;是一种常用的页面置换算法&#xff0c;选择最近最久未使用的页面予以淘汰。该算法赋予每个页面一个访问字段&#xff0c;用来记录一个页面自上次被访问以来所经历的时间 t&#xff0c;当须淘汰一个页面时…

VMware 虚拟机 Ubuntu 系统执行 ifconfig 命令 eth0没有IP地址(intet addr、Bcast、Mask)

可能的原因是&#xff0c;你安装了也安装了其他的虚拟机软件&#xff0c;比如&#xff1a;VirtualBox。我们打开 控制面板 > 网络和共享中心 > 更改适配器设置 &#xff0c; 你就可以打开控制面板/网络和Internet/网络连接界面&#xff1a; 直接禁用相应的网络即可&#…