3、php中变量、常量的命名规则及使用



嵌入到html代码中的php代码有多种形式:
1,标准形式

<?php
    这里是php代码
?>
2,标准形式
<script  language=”php”>
    这里是php代码
</script>
3,短标签形式——不推荐
<?
     这里是php代码
?>
此形式依赖于php.ini中的一项设置:  short_open_tag = On

变量名的大小写:
1、php代码中的变量名区分大小写;
2、常量通常也区分,但常量也可以自己设定为不区分(不推荐);
3、函数名不区分大小写;
4、系统中使用的关键字也不区分大小写,比如if, else, for


变量:变量必须以$开头,后面紧跟变量名
注:只要出现$符号,就会被识别成变量,即使不存在该变量

issset()函数判断变量是否存在
(1)、变量存在,就返回true,不存在就返回false;
(2)、如果一个变量的值为null,返回的也是false
例:<?php
    $a1='cunzai';
 $a2=null;
 if(isset($a1)){
     echo "变量a1存在<br/>";
 }
 if(isset($a2)){
     echo "变量a2为真<br/>";
 }else{
     echo "变量a2为假";
 }
      ?>

删除unset()函数:就是断开变量名跟数据之间的“引用关系”

变量命名的基本规则:
1,只能使用大小写字母,下划线(_),数字
2,数字不能开头
3,不能跟所在环境(系统)的关键字重名(比如if, for, function.....

变量命名的行业规则:
基本规则,保证的是语法的正确性。
行业规则,保证的是是否能得到别人的尊重!
行业规则中,有如下几种常用的命名规则:
1,驼峰命名法:
示例:name,  myName, myFatherName
2,帕斯卡命名法:
示例:Name,  MyName, MyFatherName
3,下划线间隔法:
示例:name,  my_ame, my_father_name

变量间的传值方式:值传递和引用传递
1、值传递:是指将一个变量的数据值(数据内容)拷贝一份,然后赋值给另一个变量。
例:<?php
     $v1=10;
  $v2=$v1;
  echo "v2的值为".$v2;
     ?>
2、引用传递:是指将一个变量的引用关系拷贝一份,然后赋值给另一个变量,即另一个变量也同样由该关系决定了指向某个数据
例:<?php
         $v11=10;
  $v22=&$v11;
  $v22++;
  echo "v11的值为".$v11."<br/>";
  echo "v22的值为".$v22;
     ?>
赋值(传值)完之后,两个变量指向同样一个数据。
注:在引用传值的情况下,unset一个变量,则另一个跟它有关(指向同样数据的关系)的变量,并不受影响。
例:<?php
         $v11=10;
  $v22=&$v11;
  $v22++;
         unset($v11);
  echo "v22的值为".$v22;
     ?>


可变变量:
可变变量的语法是php的很特殊的语法——其他语言中少见。
$v1 = “abc”;  //这是一个字符串变量,其内容是字符串“abc”
$abc = 10;  //这是一个普通变量,其内容是数字10
echo  $$v1;  //此时,就是所谓“可变变量”
怎么理解:
1,凡是$符号出现,就会有可能理解为是一个变量
2,这里第一个“$”出现了,则php就视图将其解释为一个变量,变量名是$v1;
3,我们有知道,$v1的值是”abc”,
4,那么,第一个“$”符号后面的变量名,就得到为“abc”
5,即:echo 试图输出的是变量$abc, 自然是数字10

预定义变量:
$_GET, $_POST, $_SERVER, $_REQUEST, $GLOBALS,  $_COOKIE, $_SESSION, ..........(大约10个)
2:作用域问题
php中,自定义的变量的作用域,分两种:全局作用域(函数外),局部作用域(函数内)。
但:
预定义变量的作用域称为“超全局作用域”:全局作用域 + 局部作用域的总和(函数内外全都可用)
3:数据类型问题:
超全局变量都是数组!


$_GET变量(数组):
et这个词,常常出现在这里:<form  action=”abc.php”  method=”get” >.....</form>
这叫做“表单以get方式提交数据”
则$_GET这个预定义数组变量,就是指以这种方式提交的所有数据的集合(数组)
对应来说,也可以以post方式提交数据
注意:get这个词,似乎没有中文翻译。
实际上,在网页中,以get方式提交数据有多种形式:
形式一:
<form  action=”abc.php”  method=”get” >
项目1: <input type=”text”   name=”uName”   />
项目2: <input type=”password”   name=”uPswd”   />
<input type=”submit”  value=”提交”  />
</form>

其作用是:用户填写表单数据,并提交后,会将数据发送(提交)给页面abc.php,其实也可以理解为“打开”该网页(abc.php),还可以理解为“请求”该网页(abc.php)
形式二:
<a  href=”abc.php?uName=test1&uPswd=123”  > 文字。。。</a>
其作用是:用户点击链接后,会将数据发送(提交)给页面abc.php,其实也可以理解为“打开”该网页(abc.php),还可以理解为“请求”该网页(abc.php),这种请求也是get请求
形式三:
<script>
location.href = “abc.php?uName=test1&uPswd=123”;  //利用location对象的属性href
</script>

其作用是:当该行语句执行的时候(通常其实是在函数中),会将数据发送(提交)给页面abc.php,其实也可以理解为“打开”该网页(abc.php),还可以理解为“请求”该网页(abc.php),这种请求也是get请求
形式四:
<script>
location.assign( “abc.php?uName=test1&uPswd=123”); //利用location对象的方法assign()
</script>

其作用是:当该行语句执行的时候(通常其实是在函数中),会将数据发送(提交)给页面abc.php,其实也可以理解为“打开”该网页(abc.php),还可以理解为“请求”该网页(abc.php),这种请求也是get请求

不管哪种形式的get提交过来的数据,获取数据是一样的:
(在abc.php网页中)
<?php
$v1 = $_GET[‘uName’]; //单引号也可以用双引号,本质是一个字符串,其实是数组的键名(下标)
$v2 = $_GET[‘uPswd’];  //该键名必须跟提交的时候的名字完全一致(区分大小写)
?>

$_POST变量(数组)
类似$_GET变量(数组),$_POST代表页面通过post方式提交过来的数据所形成的数组。
post提交数据,通常只有一种形式:
<form  action=”abc.php”  method=”post” >
项目1: <input type=”text”   name=”uName”   />
项目2: <input type=”password”   name=”uPswd”   />
<input type=”submit”  value=”提交”  />
</form>

其作用是:用户填写表单数据,并提交后,会将数据发送(提交)给页面abc.php,其实也可以理解为“打开”该网页(abc.php),还可以理解为“请求”该网页(abc.php)
接收post数据的形式为:
(在abc.php网页中)
<?php
$v1 = $_POST[‘uName’]; //单引号也可以用双引号,本质是一个字符串,其实是数组的键名(下标)
$v2 = $_POST[‘uPswd’]; //该键名必须跟提交的时候的名字完全一致(区分大小写)

也可以显示所有post数据:
var_dump($_POST)
?>

通常,网页中的form表单,一般都用post方式,get方式主要体现在其他3种形式。

$_REQUEST变量(数组)
$_REQUEST数组,其实并不是一个独立的数据来源,而是$_POST数据和$_GET数据的“总和”
即$_REQUEST数组中包括了所有$_POST数据和$_GET数据——其实是由系统内部自动存储的。
通常,$_POST数据和$_GET数据不会“同时出现”,$_REQUEST数组就代表了其中之一

当get数据和post数据同时提交并其中有重名的时候,情况怎么样呢?
说明:
1,尽量避免重名;
2,如果重名了,此时$_REQUEST只会记录(存储)其中一个数据(要么post数据,要么get数据)
3,至于记录的是哪个,是有php.ini中的一个设置项来决定:
3.1  request_order = “GP”; //这是默认值,G代表GET,P代表POST
3.2  含义是:先存储GET数据,再存储POST
3.3  可见如果重名,此时POST就会覆盖GET数据
3.4  改为:request_order = “PG”, 顺序反过来

$_SERVER变量(数组)
该变量存储了服务器端或客户端的一些请求信息或设置信息,比较多,而且不同的服务器和不同的请求页面,其数据项都可能不同。
?常用的有:
oREMOTE_ADDR, 用户的IP地址
oSERVER_ADDR:  服务器端的IP地址
oSERVER_NAME:  服务器名(主机名)
oDOCUMENT_ROOT:  站点绝对路径(其实就是主机设置中的DocumentRoot
oPHP_SELF:当前网页的文件路径
oQUERY_STRING: 表示一个get请求的整体字符串,类似这样:
?http://www.abc.com/abc.php?a=5&b=10连接地址中的“a=5&b=10”

常量
含义:用于存储一个不会变化也不希望变化的数据的标示符。
常量命名规则,同变量,但习惯说,常常将常量的名称使用“全大写”形式。

定义形式
使用define()函数定义
使用形式:define(“常量名”, 常量值);
推荐常用名使用全大写形式

使用const语法定义
使用形式: const  常量名 = 常量值;
但const语法只能在“最顶层”的代码域中使用(不能在大括号中)
也即,const语法不能在函数中或条件语句中或其他表示一个“范围”的语句中使用

常量变量的区别:
1、定义形式不同:
2、使用形式不同:常量无需$符号
3、可变程度不同:常量的值不可以改变,常量也不可以销毁
4、作用范围不同:常量具有超全局作用域 (函数内外都可以直接使用)
5、可用类型不同:常量只能存储标量类型:int,float,string,bool
判断常量是否存在:defined()
判断的结果为布尔值。
常用形式:if ( defined (某常量名) == false ){ .....这里可以去定义该常量;}
实际上,可以这样:
$result = defined (某常量名); //结果是true或false
使用一个未定义的常量(特殊情况):
使用一个未定义的常量会报一个错误(notice错误)——跟使用一个未定义的变量一样——当然不推荐。
但是:
php,此时会得到一个意想不到的结果:似乎该常量存在,并该常量的值就是该名字。

预定义常量:
php语言中,预定了大量的常量,可以直接使用。
其中有些常量,是需要某些模块打开之后才有(比如mysql模块)
比如M_PI(圆周率), PHP_OS(操作系统), PHP_VERSION(php版本号),PHP_INT_MAX(php中的最大的整数值)
参考手册〉附录〉保留字列表〉预定义常量
魔术常量
魔术常量其实是一种值会随着一定的条件(环境)而变化的常量,形式和使用上是常量,但实际上,其值会改变。
比如:__DIR__(当前网页文件的所在目录),__FILE__(当前网页文件),__LINE__(当前这一行)
魔术常量其实类似变量,其值随着不同代码而变化,不区分大小写
参考手册〉语言参考〉常量〉魔术常量

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值