细说php(二) 变量和常量
一. 变量的声明
1. php中声明变量的方法: $var = 123;
2. php是弱类型的语言, 变量的类型由存储的值决定
注: Java是强类型语言, 声明变量一定要先指定类型
二. 变量的命名
1. 变量前一定要使用"$", 声明和使用都要有这个符号.
2. 不能以数字开头.
3. 不能使用php中的运算符号+ - * / % &
4. 能够使用系统keyword作为变量名
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
**/
?>
细说php(二) 变量和常量的更多相关文章
- iOS开发Swift篇—(二)变量和常量
iOS开发Swift篇—(二)变量和常量 一.语言的性能 (1)根据WWDC的展示 在进行复杂对象排序时Objective-C的性能是Python的2.8倍,Swift的性能是Python的3.9倍 ...
- C#基础课程之二变量常量及流程控制
课堂练习:.一个四位整数 输出它的千位,百位,十位,个位 数字. ; ; % ; % ; ; Console.WriteLine("千位数" + b+" 百位数" ...
- Kotlin——初级篇(二):变量、常量、注释
在Kotlin中的变量.常量以及注释多多少少和Java语言是有着不同之处的.不管是变量.常量的定义方式,还是注释的使用.下面详细的介绍Kotlin中的变量.常量.注释的使用.以及和Java的对比. 如 ...
- 【原创】go语言学习(二)数据类型、变量量、常量量
目录 1.标识符.关键字2. 变量量和常量量3. 数据类型4. Go程序基本结构 标识符.关键字 1.标识符是⽤用来表示Go中的变量量名或者函数名,以字⺟母或_开头.后⾯面跟着字⺟母 ._或数字2. ...
- 010 01 Android 零基础入门 01 Java基础语法 02 Java常量与变量 04 变量的三个元素的详细介绍之二——变量类型——即Java中的数据类型
010 01 Android 零基础入门 01 Java基础语法 02 Java常量与变量 04 变量的三个元素的详细介绍之二--变量类型--即Java中的数据类型 Java中变量的三要素 变量名 变 ...
- Apex语言(二)变量与常量
1.变量 凡是交给计算运算(处理)的数据就是变量,用来保存参加运算的数据和计算结果. 变量由变量名来标识. 变量名由字母数字和下划线组成,不能以数字开头. [正确]number,number1,num ...
- C++入门到理解阶段二基础篇(2)——C++注释、变量、常量、关键字、标识符
目录 1.注释 注释作用 注释的方式 2.变量 变量基本知识 定义变量 3.常量 常量基本知识 整数常量 浮点常量 布尔常量 字符常量 字符串常量 常量定义 使用 #define 预处理器. 使用 c ...
- (二)C#编程基础复习——变量和常量
今天要复习一下C#基础中的变量和常量,所谓变量,就是用来存储特定类型的数据,分为值类型和引类型,可以根据需要随时改变变量中所村存储的数据值,变量必须先声明,然后才能赋值:常量就是固定不变的值,常量的变 ...
- Java程序,基本数据类型、、数据类型转换、变量和常量、常用运算符
一.基本数据类型 整数类型:byte.short. int(常用).long(较常用) 定义某个变量 int a=10: 浮点类型(小数):float.double(常用) ...
随机推荐
- 8、redis之事务1-redis命令
一.概述: 和众多其它数据库一样,Redis作为NoSQL数据库也同样提供了事务机制.在Redis中,MULTI/EXEC/DISCARD/WATCH这四个命令是我们实现事务的基石.相信对有 ...
- excel文字格式设置
这里主要注意excel默认格式的设置方法,如何修改默认字体? 雅黑和4号字体? 文件----选项---常规----新建工作簿
- 使用PXE+Kickstart无人值守安装系统
PXE预启动执行环境(即Preboot execute environment) 是一种能够让计算机通过网络启动的引导方式,只要网卡支持PXE协议即可使用,用于在无人值守安装系统服务中引导客户机安装服 ...
- scala object 转Class Scala强制 类型转换
scala object 转Class Scala强制类型转换 asInstanceOf[T] 将对象类型强制转换为T类型. 还是由于泛型存在类型擦除的原因,1.asInstanceOf[Stri ...
- 【php+js】用PHP或者JS怎么显示搜索到的关键字高亮,及其文章里包含关键字的一小段
1.想要实现的效果: 2.思路:小数据量使用 php的正则替换,即[preg_replace()]函数 -->> 支持多个关键词高亮显示,中间参数1和参数2放入对应的数组即可. $titl ...
- Alias Method for Sampling 采样方法
[Alias Method for Sampling]原理 对于处理离散分布的随机变量的取样问题,Alias Method for Sampling 是一种很高效的方式. 在初始好之后,每次取样的复杂 ...
- lucene之中文分词及其高亮显示
参考:http://www.cnblogs.com/lirenzhujiu/p/5914174.html http://www.cnblogs.com/xing901022/p/3933675.htm ...
- 构建高性能数据库缓存之redis主从复制
一.什么是redis主从复制? 主从复制,当用户往Master端写入数据时,通过Redis Sync机制将数据文件发送至Slave,Slave也会执行相同的操作确保数据一致:且实现Redis的主从复制 ...
- saltstack 基础入门文档
saltstack 和 Puppet Chef 一样可以让你同时在多台服务器上执行命令也包括安装和配置软件.Salt 有两个主要的功能:配置管理和远程执行.这里讲述了saltstack的基本使用方法. ...
- iOS扩大UIButton按钮的可点击区域
一.开发中遇到的问题 我们在开发时有时遇到这中情况:UI给的图片很小,button的点击区域要求比较大.如果用 setBackgroundImage: 方式设置图片会导致图片也跟着button的fra ...