一. 变量的声明
1. php中声明变量的方法: $var = 123;
2. php是弱类型的语言, 变量的类型由存储的值决定
注: Java是强类型语言, 声明变量一定要先指定类型
二. 变量的命名
1. 变量前一定要使用"$", 声明和使用都要有这个符号.
2. 不能以数字开头.
3. 不能使用php中的运算符号+ - * / % &
4. 可以使用系统关键字作为变量名
5. php中只有变量和常量区分大小写, 其他不区分
二. 可变变量
1. 一个变量的变量名可以动态设置和使用
<?php
$one = "aaa";
$two = "one";
$three = "two";
echo $$$three; // 结果为aaa
?>
2. 变量可以进行引用赋值(和Java中的引用一样)
<?php
$one = "aaa";
$two = &$one; // 使用"&"符号加到将要赋值的变量前, $one和$two指向同一块地址
$two = "bbb";
echo $one;
?>
三. 变量的类型
1. 前面已经说过php是弱类型语言, 它的类型由存储的值决定
2.1) 四种标量:
整形: int integer 布尔型: bool boolean 浮点型: float double real 字符串: string
2.2) 两种复合类型
数组: array 对象: object
2.3) 两中特殊类型
资源类型: resource 空类型: null
<?php
$var=10;
var_dump($var); // int(10)
$var=34.5;
var_dump($var); // float(34.5)
$var="abc";
var_dump($var); // string(3) "abc"
$var=true;
var_dump($var); // bool(true)
$var=array(1,2,3);
var_dump($var); // array(3){[0]=>int(1) [1]=>int(2) [2]=>int(3)}
$var=new mysqli("localhost", "root", "root", "newcms");
var_dump($var); // object(mysqli)#1(0){}
$var=fopen("1.php", "r");
var_dump($var); // resource(3) of type (stream)
$var=null;
var_dump($var); // NULL
?>
四. 各种类型变量声明
<?php
// 整数的最大值 4字节, 2的32次方, 214483647
$int=10; //十进制声明
$int=045; //以0开头的表示以8进制声明一个变量
$int=0xff; //以0x或0X开头的表示以16进制声明一个变量 0-9 a-f 0X A-F
$int=-5;
$float=10;
$float=-10;
$float=3.14E5;
$float=3.15E+5;
$float=5.14E-2; //E可以大写也可以小写
// 以下都是false的情况
$bool=false; // true
$bool=0; // 非0的数
$bool=0.000; // 有非0的数出现
$bool="";
$bool=" ";
$bool=null; // 非空代表
$bool="0"; // 非空非0的字符串
$bool=array(); // 有成员的数组
// 表示true的情况: true, 非0的数, 有非0的数出现, 非空代表, 非空非0的字符串, 有成员的数组
// 字符串的声明有多种方法
// 1.单引号和双引号都可以声明字符串, 声明的字符串没有长度限制
// 2.在双引号的字符串中, 即可以直接解析变量, 又可以直接使用转义字符
// 3.在单引号的字符串中, 不可以解析变量, 也不可以使用转义字符(可以以转义单引号本身, 也可以转义转义字符"\")
// 4.在双引号中不能再使用双引号, 在单引号中不能再使用单引号
$str='aaaaa\'aaa';
$str="aaaa\"aaaa";
$str=<<<one
one;
$str=`dir`;
?>
五. 数据类型转换
1. 强制类型转换
<?php
// 1. 使用setType(变量, 类型)
$str="100.12345abc";
setType($str, bool);
var_dump($str);
// 2. 赋值前使用(类型)的形式, 不会改变原变量的类型
$a=(int)"123abc";
var_dump($a);
// 3. 使用函数: $变量=intval(变量或值); $变量=floatval(变量或值); $变量=stringval(变量或值);
$b=floatval(300);
var_dump($b);
?>
2. 类型自动转换
变量会根据运行环境自动转换, 类似Java的自动提升
<?php
$a = 10;
$b = "100abc";
$c = true;
$d = 12.34;
$sum = $a + $c + $b + $d;
var_dump($sum); // float 123.34
?>
六. 一些常用函数
1. isset() , unset() , empty()
isset() : 判断值是否存在;
unset() : 去掉变量的值;
empty() : 判断一个变量是否为空 ("", null)
<?php
$a = $b = $c = $d = "hello, world";
unset($a);
if(isset($a)){
echo $a;
}else{
echo "not exists";
}
?>
2. 变量类型测试函数is_bool(); is_int(); is_integer(); is_long()
is_string(); is_float(); is_double(); is_real()
is_array(); is_object(); is_resource()
is_null(); is_scalar(); is_numberic(); is_callable()
七. 常量的声明与使用
1.常量是一个简单值的标识符, 定义后不能再改变它的值, 也不能使用unset()取消
2.常量可以不用理会变量范围的规则而在任何地方都可以定义和访问
3.常量使用define("常量名", 值); 在声明和使用都不使用"$"
<?php
define("HOME", "aaaaaaaaaaaaaaaa"); // 使用define("常量名", 值)
$a = 100;
function demo() {
global $a;
echo $a;
echo HOME; // 不用理会变量范围的规则而在任何地方都可以定义和访问
}
demo();
?>
4.常量名称习惯都使用大写, 它的值只能用标量类型(int, float, bool, string)
5.常量一定要在声明时就给值
6.defined("常量");
<?php
define("HOME2", "aaaaaaaaaaa");
if(defined("HOME")){ // 判断是否有值,返回false
echo HOME;
}else{
define("HOME", "bbbbbbbbbbbb");
}
echo HOME; // 输出 bbbbbbbbbbbb
?>
7. 预定义常量和魔术常量
<?php
echo M_PI."<br>";
echo __FILE__."<br>";
echo __LINE__."<br>";
echo __FUNCTION__."<br>";
echo PHP_VERSION."<br>";
echo CASE_LOWER;
/**
* 3.1415926535898
* D:\develop_environment\php\php\3\3_5.php
* 4
*
* 5.5.11
* 0
**/
?>