今天开始学习PHP的有关内容,主要学习了变量这一块。
php基本环境:
1.运行环境:保证能够运行php
测试:echo"abc";
保证时区设置正确:
测试:echo date("Y-m-d H:i:s");
保证模块设置正确:
测试:mysql_connect("localhost",'root','123');
2、语法环境:php嵌入到html中有多种形式。
①标准形式:<?php
......php代码
?>
②标准形式:<script language="php">
......php代码
</script>
当一个php文件中的php代码部分的后面不再有其他非php代码(通常就是html),则此时php代码区的最后的结束标记可以省略。
3、基本语法形式:
①区分大小写:主要指变量名区分大小写。
常量可区分可不区分(不区分大小写的情况不推荐)
函数名不区分大小写
系统使用的关键字不区分大小写:if,else,for
②语句结束符,用分号:php标记块中的最后一个分号可省略
php结束标记省略那么不能省略最后一个分号
(建议不省略)
变量:
形式:变量必须以$开头,后面紧跟变量名。
注意:通常,在“能够出现”变量的语法中,只要出现$符号,并在其后出现紧挨着的字符,就会被识别为一个变量,即使不存在该变量,比如:
echo “人民币符合¥像个羊,美元符号$象个钱”; 这里就会有问题!
变量的基本使用:
定义变量(赋值):直接给变量复制,就是定义; (定义变量必须赋值)
取值:
所有需要一个变量值的语句中,就会取得该变量的值,常见包括:
输出:echi $v1; (取得$v1的值,并输出)
给其他变量赋值$v2 = $v1; (取得$v1的值,并赋值给$v2)
参与运算:$v3 = $v1 + 3; (取得$v1的值,并跟3相加)
判断变量是否存在isset():
存在,返回true,不存在返回false (如果一个变量的值是null,返回的也是false)
修改变量值(赋值):第二次及以后给一个变量赋值,就算修改变量值。
删除unset():就是断开变量名跟数据之间的“引用关系”。
变量命名的基本规则:
①只能使用大小写字母,下划线(_),数字
②数字不能开头
③不能跟所在环境(系统)的关键字重名(比如if, for, function.....)
变量命名的行业规则中有几种常用的命名规则:
1,驼峰命名法: 示例:name, myName, myFatherName
2,帕斯卡命名法: 示例:Name, MyName, MyFatherName
3,下划线间隔法: 示例:name, my_ame, my_father_name
变量间传值:
变量间的传值方式是指一个变量对另一个变量而言。
传值方式:值传递,引用传递 (php中,所有变量都是默认值传递)
要想使用引用传递,必须使用引用传递的专用符号:&
值传递:是指将一个变量的数据值(数据内容)拷贝一份,然后赋值给另一个变量。
两个变量相互独立,互不影响。
$v1=1;
$v2=$v1; 此时发生传递
$v3=$v1+10; 此时没有传值
$v2++;
echo "<br /v1=$v1,v2=$v2"
此时输出结果为v1=1,v2=2
引用传值:是指将一个变量的引用关系拷贝一份,然后赋值给另一个变量,即另一个变量也同样由该关系决定了指向某个数据:
赋值(传值)完之后,两个变量指向同样一个数据。
对变量v1的操作,改变的数据,也就是体现为v2也发生了改变。
$v1=10;
$v2=&$v1; 此时发生传值,传值符号:&
$v2++;
echo "<br />v1=$v1,v2=$v2";
输出结果为v1=11,v2=11
此时,unset一个变量,则另一个跟它有关(指向同样数据的关系)的变量,并不受影响。
unset是指删除一个变量
unset($v2)
echo "<br />v1=$v1,v2=$v2";
结果:
Notice:Undefined variable:v2 in 路径;
v10=11,v2=
可变变量:是指一个变量的名,又是一个变量。
可变变量的语法是php的很特殊的语法——其他语言中少见。
$v1 = “abc”; (这是一个字符串变量,其内容是字符串“abc”)
$abc = 10; (这是一个普通变量,其内容是数字10)
echo $$v1; (此时,就是所谓“可变变量”)
预定义变量:
①又称超全局变量。
$_GET, $_POST, $_SERVER, $_REQUEST, $GLOBALS, $_COOKIE, $_SESSION, .........
②作用域(变量定义的大括号内)
php中,自定义的变量的作用域,分两种:全局作用域(函数外),局部作用域(函数内)。但是
预定义变量的作用域称为“超全局作用域”:全局作用域 + 局部作用域的总和(函数内外全都可用)
超全局变量都是数组!
$_GET变量(数组):
<form action=”abc.php” method=”get” >.....</form> (表单以get方式提交数据)
$_GET这个预定义数组变量,就是指以这种方式提交的所有数据的集合(数组)
Get表单提交到后台以键值对形式存在,php字符串拼接用“.”
也可以以post(不显示,比较安全)方式提交数据,get(显示)这个词,没有中文翻译。
常量:
含义:用于存储一个不会变化也不希望变化的数据的标示符。
常量命名规则,同变量,但习惯说,常常将常量的名称使用“全大写”形式。
①使用define()函数定义
使用形式:define(“常量名”, 常量值);
推荐常用名使用全大写形式
例:define("CONST1",1);
define("_C2","ABC"); 不推荐
define("pi",3.14);
②使用const语法定义:
使用形式: const 常量名 = 常量值;
但const语法只能在“最顶层”的代码域中使用(不能在大括号中)
也即,const语法不能在函数中或条件语句中或其他表示一个“范围”的语句中使用。
const C1=11; (这里是顶层代码,可以使用const)
if(C1>10){ (使用常量,进行判断)
const C2=12; (此处语法错误)
}
使用常量:
①直接使用名字 ②使用constant()函数:constant(“常量名”)
常量变量的区别:
定义形式不同:
使用形式不同:常量无需$符号
可变程度不同:常量的值不可以改变,常量也不可以销毁
作用范围不同:常量具有超全局作用域 (函数内外都可以直接使用)
可用类型不同:常量只能存储标量类型:int,float,string,bool
判断常量是否存在:defined()
判断结果为布尔值。
常用形式:if ( defined (某常量名) == false ){ .....这里可以去定义该常量;}
实际上,可以这样:
$result = defined (某常量名); (结果是true或false)
预定义常量:
php语言中,预定了大量的常量,可以直接使用。其中有些常量,是需要某些模块打开之后才有(比如mysql模块)
魔术常量:
魔术常量其实是一种值会随着一定的条件(环境)而变化的常量,形式和使用上是常量,但实际上,其值会改变。