变量和常亮

①常亮

常量是单个值的标识符(名称)。在脚本中无法改变该值。简单来说就是一个声明固定的值,无法去修改,只能去读取使用。常量和变量都是大小写字母都敏感的,就是大写和小写的常量和变量不是相同的值。

语法

//注意:常量在一般情况常用大写字母表示,

定义后不能改变常量的值,

不能用unset();取消常量值,

常量不用理会常量作用范围任何地方都可以使用,

在函数内,变量的使用需要声明常量的作用域globay变量名(全局作用)local(局部)static(静态)

常量在声明时要进行赋值;

-----------------------------------------------------------------------------------------------------------------------

define('常量名',‘常量值’)

例子:定义一个常量money,赋值为130;

代码如下:

<?php
define('money','180');//定义一个叫money的常量,赋值180
echo money; //输出常量money,输出结果180.

在上述例子中已经声明了常量money的值为180,这个money的常量只能被读取是无法修改的。

②变量

变量是存储信息的容器。也就是说声明一个变量,变量是可以通过某种指令去修改它的值。变量对大小写敏感,NAME和name代码不同的两个变量。

语法:

$ 变量名=变量值

声明一个叫name的变量,取值叫tom;再声明一个叫Name的变量,取值汤姆;

代码与运行结果如下代码演示

<?php
$name='tom';
$Name='汤姆';
echo $name;//输出小写tom
echo $name.$Name//字符串连接符合‘.’,可以连接多个字符串,输出结果tom汤姆;
$name='TOM';
echo $name;//一输出大写TOM
/*一个变量被声明多次,看看上述变量的最近一个,也就是一个变量被定义多次,输出的结果以左后一次为准*/

变量被定义多次,输出的时候看看最后一次声明的变量值多少,就输出多少。

变量命名规则:

  • 变量以 $ 符号开头,其后是变量的名称
  • 变量名称必须以字母或下划线开头
  • 变量名称不能以数字开头
  • 变量名称只能包含字母数字字符和下划线(A-z、0-9 以及 _)
  • 变量名称对大小写敏感($y 与 $Y 是两个不同的变量)

注释:PHP 变量名称对大小写敏感!

多单词的命名法:

下划线法:user_name(下划线)

驼峰法:

userName(小驼峰法)

UserName(大驼峰法)

注意:常量命名规则和变量一致,遵循变量命名法;

常量相关常用的函数

isset(); //值如果是null也表示空,存在返回true,不存在返回flase

empty();//判断变量是否为空,null也是空;存在返回true,不存在返回flase

unset();//取消某个变量。

settype();// 某个变量永久性强制转换

gettype();//获取变量的类型

可变变量:

将一个普通变量的值作为可变变量的变量名。可变变量是php独有的特性,可变变量指的是变量名可变,而变量(即普通变量)指的是变量值可变。

说白了就是通过动态获取普通的变量。代码演示吧。通过多加一个$符号获取

<?php
$a='ABC';
$ABC='DEF';
$DEF='XYZ';
echo $a $$a $$$a; //$$a输出ABC变量的值,$$$a输出DEF变量的值,通过多输出一个美元符号$获取变量。

变量的赋值:

①传值赋值

普通的赋值方式,相当于给变量赋予一个值。

语法

$ 变量名1=$变量名2

<?php
$a=180;
echo $a;//输出变量a的值 输出显示180
$b=$a;//将a变量的值赋值给变量a 把180赋值给变量b
echo $b; //输出b的值  显示为180
$a='haha';  //a变量重新被定义为‘haha’
echo $a,$b  //输出a,b变量值,输出a为被重新定义的值,b的值还是之前a赋值的。不会随着a的改变而改变。

②引用赋值

给变量赋予一个另外变量的值,当被赋予的变量值改变时,输出时也会改变。

引用变量语法。

$变量名1=&$变量名2

<?php
$a=180;
echo $a;//输出变量a的值 输出显示180
$b=&$a;//将a变量的值赋值给变量a 把180赋值给变量b
echo $b; //输出b的值  显示为180
$a='haha';  //a变量重新被定义为‘haha’
echo $a,$b  //输出a,b变量值,输出a为被重新定义的值,输出b变量的值随a变量改变也会改变。输出的值为haha haha

-----------------------------------------------------------------------------------------------------------------------变量的作用域:

在 PHP 中,可以在脚本的任意位置对变量进行声明。

变量的作用域指的是变量能够被引用/使用的那部分脚本

*****************************************************************************************************************

global(全局):函数之外声明的变量拥有 Global 作用域,只能在函数以外进行访问。

local(局部):函数内部声明的变量拥有 LOCAL 作用域,只能在函数内部进行访问。

static(静态):函数在脚本执行一次,一般会删除所以的变量,当不需要删除时,需要在首次声明变量的时候使用static。

*****************************************************************************************************************

global作用域代码如下运行:

<?php
$a=180;
$b=123;
function int()//新建一个叫int的函数
{global $a;//设置变量a的作用域,b没有设置
echo $a;
echo "<hr>";
echo "$b";  //没有声明b的作用局,该行报错,而且无法输出

}
int();//输出函数
echo $a;
echo "<hr>";
echo $b;

?>

注意:函数以外的声明变量,在函数内部需要用,就要在函数内声明global 变量。

local作用域代码如下运行:

<?php
$x=100;//全局作用域
function DEMO()
{
	$y=200;//local作用域,内部声明只能在函数内使用
	echo "函数内部测试:<br>";
	echo "变量x= $x \n";
		echo "变量y= $y \n";
	
	
}
DEMO();
echo "函数之外测试:<br>";
	echo "变量x= $x \n";
		echo "变量y= $y \n";

注意:函数之外的global作用域只能外部用,函数内部声明的变量(local作用域),只能函数内部执行使用。

static作用域代码如下运行:

<?php
function demo()
{
	 static $a=0;//定义static静态作用域,否则函数内调用一次呗删除,不要删除时定义static
	 echo "$a";
	 $a++;
	
}
demo();
echo "<br>";
demo();
echo "<br>";
demo();
echo "<br>";
demo();
echo "<br>";
demo();

注意:函数内部的变量,被函数内部调用或者执行一次后,会被删除,如果继续函数内部调用的话,可以在声明变量时候声明变量的作用域static(静态),没有定义则,只能被调用一次,定义static,可以函数内部多次调用,但是还是local内部作用域,在函数之外还是无法调用。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏水击三千

浅谈JavaScript的面向对象程序设计(三)

  前面已经对JavaScript的面向对象程序设计作了简单的介绍,包括了对象的属性、对象的工厂模式、构造函数和原型等。通过介绍,这些创建对象的方法依然有不少优...

24650
来自专栏Java 源码分析

静态内部类

定义:静态内部类,定义在类中,任何方法外,用static定义;静态内部类只能访问外部类的静态成员。 注意点: 一般情况下,如果一个内部类不是被定义成静态内部类,...

33780
来自专栏个人分享

Scala语法笔记

JAVA中,举例你S是一个字符串,那么s(i)就是该字符串的第i个字符(s.charAt(i)).Scala中使用apply的方法

22820
来自专栏marsggbo

strtol函数 将字符串转换为相应进制的整数

+----------------+ |   strtol   | +----------------+ i.e. string to...

24070
来自专栏小樱的经验随笔

C/C++对bool operator < (const p &a)const的认识,运算符重载详解(杂谈)

下面来进行这段代码的分析: struct node {  //定义一个结构体node(节点) int x; int y; int len;   //nod...

34860
来自专栏一“技”之长

深入理解JavaScript函数 原

    从功能上理解,函数是一组可以随时运行的语句,是一段代码块,也是所谓的子程序。在JavaScript中,函数实质上也是一种对象,是Function对象。函...

7310
来自专栏梧雨北辰的开发录

Swift学习:构造器(中)

本篇继续对Swift中的构造器进行介绍,这里主要说到类的继承和构造。 作为引用类型的类具有的继承特性,这使得类的构造过程较为复杂一些,因为涉及到很多细节性的问题...

31680
来自专栏编程

Python基础知识2:字典

字典一种key - value 的数据类型,就像上学用的字典通过拼音查找汉字一样;字典是Python语言中唯一的映射类型。字典对象是可变的,它是一个容器类型,能...

249100
来自专栏微信公众号:Java团长

浅谈Java中的equals和==

  为什么第4行和第5行的输出结果不一样?==和equals方法之间的区别是什么?如果在初学Java的时候这个问题不弄清楚,就会导致自己在以后编写代码时出现一些...

10330
来自专栏猿人谷

const用法小结

常类型是指使用类型修饰符const说明的类型,常类型的变量或对象的值是不能被更新的。因此,定义或说明常类型时必须进行初始化。 概述 1. const有什么...

19170

扫码关注云+社区

领取腾讯云代金券