细说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(常用) ...
随机推荐
- django之创建第6-2个项目-过滤器列表
转载:http://www.lidongkui.com/django-template-filter-table 一.转化为小写 {{ name | lower }} 二.串联:先转义文本到HTML, ...
- android事务队列处理的实现
代码地址如下:http://www.demodashi.com/demo/14748.html 前言 在android开发中,我们经常会遇到一种情况,随时接收并处理服务端发过来的消息,当服务端发过来的 ...
- 代理Proxy初探
Proxy,也就是"代理"了. 意思就是.你不用去做,别人取代你去处理.比方说:租房.你仅仅要找到"我爱我家"中介,把全部的事情交给他们去代劳, "我 ...
- 在发送信息时应用PendingIntent.FLAG_UPDATE_CURRENT
1. 连续发送两条信息时,出现bug.以下是bug现象描述. 发送第一条信息,sentReceiver弹出toast告知发送成功,同时在listview中的发送状态立即同步更新为发送成功. 继续发送第 ...
- 多线程场景下如何使用 ArrayList
ArrayList 不是线程安全的,这点很多人都知道,但是线程不安全的原因及表现,怎么在多线程情况下使用ArrayList,可能不是很清楚,这里总结一下. 1. 源码分析 查看 ArrayList 的 ...
- BigDecimal去除末尾多余的0
Java有自带的 stripTrailingZeros() 方法用于去除末尾多余的0 BigDecimal num = new BigDecimal("100.000"); Big ...
- ios中两个view动画切换
@interface ViewController () @property(nonatomic,retain)UIView *redview; @property(nonatomic,retain) ...
- [转载]显示SVN控制台
原文地址:显示SVN控制台作者:瘦骨临清风 青春就应该这样绽放 游戏测试:三国时期谁是你最好的兄弟!! 你不得不信的星座秘密
- Redis学习之路(001)- Redis介绍以及安装(Linux)
redis是当前比较热门的NOSQL系统之一,它是一个key-value存储系统.和Memcached类似,但很大程度补偿了memcached的不足,它支持存储的value类型相对更多,包括strin ...
- HDU 1907 John (Nim博弈)
John Time Limit: 5000/1000 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Others)Total Submis ...