php第二节(变量、常量)
<?php
/**
* 类型转换
* 自动转换 数据在运算过程中自动转换
* 空字符串 false
* "0" false
* null false
* 0 false
* 空数组 false
* 1、 转为布尔型(即返回值为0)
* 空字符串''或""
* 数字0或0.0 字符'0'或"0"
* 空值NULL 没有成员的数组 false
** 其余都转换成布尔型true,包含资源
*2、 转为整数或浮点型
* 如果字符串为合法的数字字符串,则直接转换成整型/浮点型
* 如果字符串中包含.或e或E,则转换成浮点型;否则转换成整型
* 非法的数字字符串转换成数值0
*3、 转为字符串型
* 数值将直接转换成数字字符串
* 布尔型的true转换成字符"1";false转换空字符串
*/
$name="0";// 0, 0.0 ,'' ,"" ,"0" ,'0' ,null, [] 为false
if($name){
echo "yes";
}else {
echo "no";
}
//加法运算 字符串里的第一个数字开始算只要遇到不是数字的直接忽略
$name1="1ss22";
$age=12;
$res=$age+$name1;
echo $res; //. 想当于js中的 + 作连接符
$age1="sdfff";
$name2=122;
$res1=$name2.$age1;
echo $res1; /**
* 强制数据转换
*PHP的数据类型转换属于强制转换,允许转换的PHP数据类型有:
*(int)、(integer):转换成整形
*(float)、(double):转换成浮点型
*(string):转换成字符串
*(bool)、(boolean):转换成布尔类型
*(array):转换成数组
* object):转换成对象
* PHP数据类型有三种转换方式:
* 在要转换的变量之前加上用括号括起来的目标类型
* 使用3个具体类型的转换函数,
* intval()、
* floatval()、
* strval()
* 使用通用类型转换函数settype(mixed var,string type)
* 会改变原先的数据类型
*/
$sum="12";
$num=(int)$sum;
$sum1="12";
$num2=(int)$sum1;
$sum2="12";
$num2=(int)$sum2;
var_dump(num);
var_dump(num1);
var_dump(num2);
//PHP数据类型有三种转换方式:
//intval($sum); strvak($sum); floatval($sum);
$we=intval($sum);
var_dump($we);
//分别用var_dump();打印
//通用函数 settype($sum,"string");
$str=settype($sum,"string");
var_dump($str); /**
* 变量默认值
* 1.不确定类型时的默认值(null):
* 2.数值类型时的默认值(0):
* 3.字符串的默认值是(” ”);
* 4.布尔类型的默认值是(假);
* 5.数组的默认值是(0
*/
/**
* 变量的作用域
* 全局变量 函数之外的变量
* 局部变量 函数内定义的变量
* 超全局变量 系统定义的变量
* 静态变量 函数内部定义用于函数数据共享
*/ /**
* 变量的常用函数
* is_array() 判断是否为数组
* is_null() 判断是否为null
* unset() //销毁对象变量等
* isset() 检查变量是否存在; null和变量声明未赋值 返回false,其他都为真
* empty();判断一个变量是否被认为是空的。当一个变量并不存在,或者它的值等同于FALSE,那么它会被认为不存在。如果变量不存在的话,
*
*/ is_array() 判断是否为数组
$arr = 12.2343;
if (is_array($arr)) {
echo "yes";
} else {
echo "no";
} //is_null() 判断是否为null
$name = null;
if (is_null($name)) {
echo "yes";
} else {
echo "no";
} //unset() //销毁对象变量等
$name = array(1, 2, 3);
class Person
{
}
$obj = new Person; unset($obj);
echo "<pre>";
var_dump($obj); //isset() 检查变量是否存在; null和变量声明未赋值 返回false,其他都为真
if (isset($name)) {
echo "yes";
} else {
echo "no";
} //empty();判断一个变量是否被认为是空的。当一个变量并不存在,或者它的值等同于FALSE,那么它会被认为不存在。如果变量不存在的话,
if (empty($name)) {
echo "yes";
} else {
echo "no";
} // 什么是常量:
// 常量可以理解为值不变的量;或者是常量值被定义后,在脚本的其他任何地方都不可以被改变。PHP中的常量分为自定义常量和系统常量。
// 自定义常量:是根据我们开发的需要,而定义的常量,它通过使用PHP中的函数define() 定义。
// 系统常量:是PHP已经定义好的常量,我们可以直接拿来使用。 // 常量的作用:
// 常量主要功效是可以避免重复定义,篡改变量值。在我们进行团队开发时,或者代码量很大的时候,对于一些第一次定义后不改变的量,如果我们使用变量,在不知情的情况下,使用同一变量名时,变量值就会被替换掉,从而会引发服务器执行错误的任务。
// 此外,使用常量还能提高代码的可维护性。如果由于某些原因,常量的值需要变更时候,我们只需要修改一个地方。 // 认识系统常量:
// __FILE__ 当前PHP文件的相对路径 __LINE__ 当前PHP文件中所在的行号
// __FUNCTION__ 当前函数名,只对函数内调用起作用 __class__ 当前类名,只对类起作用
// PHP_VERSION 当前使用的PHP版本号 PHP_OS 当前PHP环境的运行操作系统
// true 与true一样 false 与false一样
// M_PI 圆周率常量值 M_E 科学常数e
// M_LOG2E 代表log2 E_ERROR 最近的错误之处
// E_WARNING 最近的警告之处 E_PARSE 剖析语法有潜在问题之处
// __METHOD__ 表示类方法名,比如B::test // define和const的区别:
// 1 、const是一个语言结构;而define是一个函数,可以通过第三个参数来指定是否区分大小写。true表示大小写不敏感,默认为false
// 例子:define('PI', 3.14, true);
// 2 、const简单易读,编译时要比define快很多。
// 3 、const可在类中使用,用于类成员常量定义,定义后不可修改;define不能在类中使用,可用于全局变量
// 4 、const是在编译时定义,因此必须处于最顶端的作用区域,不能在函数,循环及if条件中定义;而define是函数,也就是能调用函数的地方都可以定义
// 5 、const只能用普通的常量名,define常量名中可以有表达式
// 6 、const定义的常量只能是静态常量,define可以是任意表达式
// 判断常量是否被定义:
// defined() 函数可以帮助我们判断一个常量是否已经定义,其语法格式为:
// bool defined(变量名类型 变量名) 若存在则返回布尔类型true,否则返回布尔类型false。 // 常量与变量的区别:
// 1. $ :常量前面没有( $) // 2. define: 常量只能用define() 函数定义,而不能通过赋值语句 // 3. 作用域: 常量可以不用理会变量的作用域而在任何地方定义和访问 // 4. 重定义: 常量一旦定义就不能被重新定义或者取消定义 // 5. 标量类型:常量的值只能是标量 // 6. 命名空间:常量和(全局)变量在不同的名字空间中 define("NAME", "jack");
echo NAME; $res = constant("NAME");//有返回值
echo $res;
include("demo.php"); ?>
php第二节(变量、常量)的更多相关文章
- php大力力 [010节]PHP常量
2015-08-23 php大力力010. PHP常量 php大力力 [010节]PHP常量 设置 PHP 常量 如需设置常量,请使用 define() 函数 - 它使用三个参数: 首个参数定义常量的 ...
- Java 第二章 变量、数据类型和运算符
第二章 变量.数据类型和运算符 什么是变量: 变量代表一块内存区域,变量类型不一样,这一块内存的大小也不一样. #在编程语言里面,你可以通过定义变量,向内存里添加数据或者修改内存已有的数据. ...
- C#基础总结之一变量常量-if嵌套语句-witch结构-类型转换
//Console.WriteLine("Hello World"); //打印显示 //Console.ReadLine(); //接收输入的值 //Console.ReadKe ...
- C++ Primer 笔记(2)第二章 变量与基本类型
第二章 变量与基本类型 1.基本内置类型包括算术类型和空类型,算术类型分为两类:整型(包括字符和布尔类型)和浮点型: 2.布尔类型(bool)的取值是真(true)或者假(false): 3.字面值常 ...
- seajs第二节,seajs各模块依赖关系
index.html <!DOCTYPE html> <html> <head> <meta charset="utf-8"> &l ...
- 源码讲解 node+mongodb 建站攻略(一期)第二节
源码讲解 node+mongodb 建站攻略(一期)第二节 上一节,我们完成了模拟数据,这次我们来玩儿真正的数据库,mongodb. 代码http://www.imlwj.com/download/n ...
- JAVA之旅(一)——基本常识,JAVA概念,开发工具,关键字/标识符,变量/常量,进制/进制转换,运算符,三元运算
JAVA之旅(一)--基本常识,JAVA概念,开发工具,关键字/标识符,变量/常量,进制/进制转换,运算符,三元运算 Android老鸟重新学一遍JAVA是什么感觉?枯燥啊,乏味啊,而且归纳写博客,都 ...
- Python第二天 变量 运算符与表达式 input()与raw_input()区别 字符编码 python转义符 字符串格式化 format函数字符串格式化 帮助
Python第二天 变量 运算符与表达式 input()与raw_input()区别 字符编码 python转义符 字符串格式化 format函数字符串格式化 帮助 目录 Pychar ...
- 第二节:Web前端-ASP.NET之C#基础
第二节:Web前端-ASP.NET之C#基础 学习ASP.NET,要掌握学习语言,控件等技能, <div style="text-align: center; line-height: ...
- C#基础课程之二变量常量及流程控制
课堂练习:.一个四位整数 输出它的千位,百位,十位,个位 数字. ; ; % ; % ; ; Console.WriteLine("千位数" + b+" 百位数" ...
随机推荐
- Redis过期设置
Redis支持按key设置过期时间,过期后值将被删除(在客户端看来是补删除了的) 用TTL命令可以获取某个key值的过期时间(-1表示永不过期) 127.0.0.1:6379> set name ...
- ZROJ#398. 【18提高7】随机游走(期望dp 树形dp)
题意 [题目链接]版权原因就不发了.. 给出一棵树,求出任意两点之间期望距离的最大值 Sol 比较清真的一道题吧.. 设\(f[x]\)表示从\(x\)走到\(x\)的父亲的期望步数 \(g[x]\) ...
- 【Leetcode】【Easy】Palindrome Number
Determine whether an integer is a palindrome. Do this without extra space. 判断一个整数是不是回文整数(例12321).不能使 ...
- php 四种基本排序算法
冒泡排序 思路分析:法如其名,就是像冒泡一样,每次从数组当中 冒一个最大的数出来. 第一轮:从第一个到最后一个冒泡比较,运行结果:最后一个最大 第二轮:从第一个到倒数第二个冒泡比较, 运行结果:最后一 ...
- P2PSearcher云点播设置和使用技巧
P2PSearcher是一款基于ED2K网络的资源搜索工具,资源丰富,小巧轻便.资源搜索结果最丰富.智能排序定位精准,立即找到想要的资源.新版可突破服务器封杀限制,一个能用的P2PSearcher.整 ...
- March 2 2017 Week 9 Thursday
The first duty of love is to listen. 爱的首要责任是倾听. Yesterday, I read an article that says a successful ...
- python接口测试-项目实践(三)数据的处理示例
三 数据处理 枚举值的转换.如接口返回1-5,需转成对应的中文. typecap = findinfo_from_api(result, 'TypeCap') dictcap = {': '微盘'} ...
- NodeJS服务器端平台实践记录
[2015 node.js learning notes]by lijun 01-note Nodejs是服务器端的javascript,是一种单线程.异步I/O.事件驱动型的javascript:其 ...
- Echarts横坐标倾斜,顶部显示数字
最近项目使用到Echarts,所以学习了下 根据API,实现Echarts很简单,在这就不多说了,下面就说说项目中碰到的一些需求 1.由于横坐标很多,导致数据不能展示完整,所以需要设置横坐标样式倾斜展 ...
- 成都夏季招聘会IT行业缺口大!
上个周末成都的夏季招聘会在新会展中心举行,我们传智播客的专业市场调查员也深入当中.了解IT行业招聘情况,我们发如今IT软件行业专区招聘的公司特别多,可是去应聘的人却非常少.这意味着IT行业正处于供不应 ...