前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >通俗易懂PHP基础【2-常量变量】

通俗易懂PHP基础【2-常量变量】

作者头像
Lemon黄
发布2019-10-08 17:35:00
6970
发布2019-10-08 17:35:00
举报
文章被收录于专栏:Lemon黄Lemon黄
学习和研究好比爬梯子,要一步一步地往上爬,企图一脚跨上四五步,平地登天,那就必须会摔跤了。 ——华罗庚

嗯,是吧,学习是一个积累的过程,一定要戒骄戒躁,不然可是会摔跤的。原归正传,今天说说PHP基础语法中的常量和变量。

1

常量

人们常说:该是你的就是你的,任何人谁也无法改变得了的。

放在PHP中,无法改变的量就是常量。

合法的常量标示,常量名称前面不用加美元符($),以字母或者下划线开头,后面跟上任何的数字,字母或者下划线。当然,常量的名称也要取名取得见名知意。

常量大小写敏感的,通常我们都用大写来命名常量。

常量的定义

使用的函数是 define($name,$value,[$option])。

$name:代表常量的名称,记得通常是大写字母标识

$value:代表的是该常量的值

$option: 是可选参数,代表常量名称是否大小写敏感,默认是false

下面我们创建两个变量,测试一下:

代码语言:javascript
复制
//对大小写敏感
define("LEMON", "I'm Lemon");
echo LEMON ;
echo '<br/>';//换行
echo lemon;
echo '<br/>';//换行
//对大小写不敏感
define("HUANG", "I'm Lemon", true);
echo huang;
echo '<br/>';//换行
echo

运行结果,有一行一定会报错,如下:

2

预定义常量

PHP中已经定义好的一些常量,可以方便我们开发过程中来使用,这些常量我们统称为预定义常量,如下表格就是PHP中常用的预定义常量,了解一下。

常量名

功能

__FILE__

获取当前所在的PHP程序文件名

__LINE__

获取当前所在的PHP程序代码行数

PHP_VERSION

获取PHP的版本

PHP_OS‍

获取执行PHP解析器的操作系统名称‍

TRUE

真值

FALSE

假值

NULL

空(null)值

E_ERROR‍

指到最近的错误处

E_WARNING

指到最近的警告处

E_PARSE

指解析语法有潜在问题处

E_NOTICR

为发生不寻常但不一定是错误处 (就如上例代码抛出的Notice消息)

我们用代码来实际了解一哈:

代码语言:javascript
复制
<?php
header("Content-Type:text/html;charset=utf-8");
echo "当前文件路径:".__FILE__;
echo "<br>当前行数:".__LINE__;
echo "<br>当前PHP版本信息:".PHP_VERSION;
echo "<br>当前操作系统:".PHP_OS;
?>

运行结果:

3

变量

人们又常说:天有不测风云,人有旦夕祸福,体现的是一种变数。在PHP中,把这种可以改变的量,称为变量。

合法的变量标示,变量名称前面需要加美元符($),以字母或者下划线开头,后面跟上任何的数字,字母或者下划线。当然,变量的名称也要取名取得见名知意。

变量也是大小写敏感的,通常我们都用小写来命名变量。

不同于常量,常量可以用于程序中任何的位置,而变量的使用,是有一定的作用范围,在范围内使用才是有效、有意义的。

根据作用的范围不同,变量可以声明成局部变量全局变量

局部变量:定义在函数内部,其作用域就是所在函数内部,超出则无法使用。

全局变量:定义在函数以外,作用域是整个PHP文件,我们自己定义的函数内部是无法使用的。如果想要在自定义的函数内部使用,需要使用 global 关键字声明变量。

代码语言:javascript
复制
<?php
$x="Lemon";
$y="Huang";
function getName(){
  echo $x."<br>"; //$x不能被调用,没有输出
  global $y; //利用关键字global 在函数内部说明,不说明认为是私有变量
  echo $y."<br>"; //调用$y
}
getName();
?>

运行结果:

例子中我们定义两个全局变量$x与$y,在我们自定义函数getName()里面,我们在函数内使用它们,而程序输出的结果只有$y的值“Huang”,因为我们用global关键字声明了全局变量$y。而函数外定义的$x和函数内使用的$x,其实它们是没有任何关系的。

4

静态变量

静态变量,其含义是你在使用一个变量是可以保留它被使用完后的值,下一次使用时,值的改变是在上一次的值基础之上。

举个例子,假如你今天被妈妈打了一次,你心里已经默默记住被妈妈打了一次,明天又被妈妈打了一次,你心里的默默又加了一次。嗯,你的默默记住了你被打了两次,而不是又一次,默默就是你的静态变量,会保留你之前的值。

静态变量:规范定义,在函数调用完之后还保留变量的值,当再次调用函数时,又可以继续使用上回保留的值。

而在上一小节说的变量,在函数调用结束后,它存储的数据值是会被清除,变量占用的内存空间会被释放掉。

如何使用静态变量呢?使用静态变量,只需要用static关键字来声明即可。例如,static $var ,$var就是静态变量。

代码语言:javascript
复制
<?php
function add1(){
    static $count=0;
    $count++;
    echo $count." ";
}
function add2(){
    $count=0;
    $count++;
    echo $count." ";
}
for($i=0;$i<10;$i++) add1(); //输出1~10
echo "<br>";
for($i=0;$i<10;$i++) add2(); //输出10个1
?>

运行结果:

自定义函数add1()输出了从1到10的数字,而add2()函数输出了10个1。主要因为你函数add1()有声明静态变量。

初始化都为0,再分别使用for循环(下来竟会学到的)调用两个函数,可以发现有声明静态变量的函数add1()在被调用后,$count的是会被保留的呈现累加效果,也就是说静态变量只要声明一次,它的值就会被保留在内存空间中而不是函数调用完就被销毁,这就区别于一般的变量了,只有普通变量的函数add2()在被调用后,$count的值每循环一次初始化一次,一个循环内调用完就被销毁,所以每次输出的都只能是1。

5

可变变量

可变变量,可能一开会觉得和变量不应该是同一概念吗?但是,可变变量其实说的不是变量的变,而是变量名的变。

可变变量,表示的是一个变量的名称可以有一个变量的值来确定。代码上的表示,就是在变量的前面再多加上一个美元符($)。

代码语言:javascript
复制
<?php
$lemon="yellow";
$yellow="banner";
echo $lemon; // 输出yellow
echo "<br>";
echo $$lemon; //通过$$lemon会改变成$yellow的名称,而$yellow变量刚好存在,则输出banner
?>

运行结果:

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-09-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Lemon黄 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档