细说php(二) 变量和常量

一. 变量的声明

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. php有8中类型:

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
	 **/
?>


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值