一. 变量的声明

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(二) 变量和常量的更多相关文章

  1. iOS开发Swift篇—(二)变量和常量

    iOS开发Swift篇—(二)变量和常量 一.语言的性能 (1)根据WWDC的展示 在进行复杂对象排序时Objective-C的性能是Python的2.8倍,Swift的性能是Python的3.9倍 ...

  2. C#基础课程之二变量常量及流程控制

    课堂练习:.一个四位整数 输出它的千位,百位,十位,个位 数字. ; ; % ; % ; ; Console.WriteLine("千位数" + b+" 百位数" ...

  3. Kotlin——初级篇(二):变量、常量、注释

    在Kotlin中的变量.常量以及注释多多少少和Java语言是有着不同之处的.不管是变量.常量的定义方式,还是注释的使用.下面详细的介绍Kotlin中的变量.常量.注释的使用.以及和Java的对比. 如 ...

  4. 【原创】go语言学习(二)数据类型、变量量、常量量

    目录 1.标识符.关键字2. 变量量和常量量3. 数据类型4. Go程序基本结构 标识符.关键字 1.标识符是⽤用来表示Go中的变量量名或者函数名,以字⺟母或_开头.后⾯面跟着字⺟母 ._或数字2. ...

  5. 010 01 Android 零基础入门 01 Java基础语法 02 Java常量与变量 04 变量的三个元素的详细介绍之二——变量类型——即Java中的数据类型

    010 01 Android 零基础入门 01 Java基础语法 02 Java常量与变量 04 变量的三个元素的详细介绍之二--变量类型--即Java中的数据类型 Java中变量的三要素 变量名 变 ...

  6. Apex语言(二)变量与常量

    1.变量 凡是交给计算运算(处理)的数据就是变量,用来保存参加运算的数据和计算结果. 变量由变量名来标识. 变量名由字母数字和下划线组成,不能以数字开头. [正确]number,number1,num ...

  7. C++入门到理解阶段二基础篇(2)——C++注释、变量、常量、关键字、标识符

    目录 1.注释 注释作用 注释的方式 2.变量 变量基本知识 定义变量 3.常量 常量基本知识 整数常量 浮点常量 布尔常量 字符常量 字符串常量 常量定义 使用 #define 预处理器. 使用 c ...

  8. (二)C#编程基础复习——变量和常量

    今天要复习一下C#基础中的变量和常量,所谓变量,就是用来存储特定类型的数据,分为值类型和引类型,可以根据需要随时改变变量中所村存储的数据值,变量必须先声明,然后才能赋值:常量就是固定不变的值,常量的变 ...

  9. Java程序,基本数据类型、、数据类型转换、变量和常量、常用运算符

    一.基本数据类型 整数类型:byte.short. int(常用).long(较常用)     定义某个变量          int  a=10: 浮点类型(小数):float.double(常用) ...

随机推荐

  1. 【Linux】shell数组

    一.概念 shell数组就是一个元素集合,它把有限个元素用一个名字来命名,然后用编号对他们分区.这个名字称为数组名,用于区分不同内容的编号称为数组的下标. 二.shell数组的定义与增删改查 1.sh ...

  2. POJ1013 称硬币

    题目链接:http://poj.org/problem?id=1013 题目大意 有12枚硬币.其中有11枚真币和1枚假币.假币和真币重量不同,但不知道假币比真币轻还是重.现在,用一架天平称了这些币三 ...

  3. 【TP3.2.X】(同样适用于OT) 设置单入口index.php文件,区分PC/WAP/Wechat 三个终端

    1.目的:本教程适用于 OneThink1.0.或者TP3.2.X 系列,达到单入口index.php文件,区分PC/WAP/Wechat 三个终端 2.启发至 : http://www.thinkp ...

  4. Dockerfiler如何使用多个启动命令entrypoint

    两个办法,一个是CMD不用中括号框起来,将命令用"&&"符号链接: # 用nohup框起来,不然npm start执行了之后不会执行后面的 CMD nohup sh ...

  5. ios中图层的用法(1)

    uiview画圆角 - (void)layerMyView { // 圆角 self.myview.layer.cornerRadius = ; // 边框 self.myview.layer.bor ...

  6. Linux-TCP 出现 RST 的几种情况

    导致“Connection reset”的原因是服务器端因为某种原因关闭了Connection,而客户端依然在读写数据,此时服务器会返回复位标志“RST”,然后此时客户端就会提示“java.net.S ...

  7. 新安装的ubuntu编辑器问题

    转自:https://blog.csdn.net/xiangaichou/article/details/20235041 VI部分 1. 上下左右总是出ABCD,还占行,特难用.这种情况出现在ubu ...

  8. <转>lua解析脚本过程中的关键数据结构介绍

    在这一篇文章中我先来介绍一下lua解析一个脚本文件时要用到的一些关键的数据结构,为将来的一系列代码分析打下一个良好的基础.在整个过程中,比较重要的几个源码文件分别是:llex.h,lparse.h.l ...

  9. UIAlertView/UIAlertController封装使用

    基于UIAlertView封装的JXTAlertView,这个是将之前写Demo时搞的一套快捷使用alertView的工具抽离整理出来的,并提供了C函数直接调用,像这样: jxt_showAlertT ...

  10. Oracle 12C -- Plug in a Non-CDB as a PDB

    1.备份non-CDB数据库2.关闭non-CDB数据库 SQL> shutdown immediate; 3.将non-CDB至于只读状态 SQL> startup open read ...