PHP中类型转换 ,常量,系统常量,魔术常量的详解


Posted in PHP onOctober 26, 2017

PHP中类型转换 ,常量,系统常量,魔术常量的详解

1.自动类型转换;

在运算和判断时,会进行自动类型转换;
1)其他类型转为bool,判断时转换;
  1)整型转布尔型:0转false,非0转为true;
  2) 空字符串和‘0'(“0”)转为false,其他转为true;
  3) 空数组转为false, 非空数组则转为true;
  4) null转为false
  5) 资源打开不成功为false 
    是0或空,打开不成功的转为‘false','0';
2)其他类型转为字符串(字符串拼接);
  null bool int float
  1) null转换为空串(空串不显示)
  2)整数直接转换为对应字符串 5=>'5';
  3)实数直接转换为对应的字符串,但尾0不转(实数小数点最后的0);
  4)true转换为'1‘,false转为空串;
字符串、布尔、整型、浮点、null
3) 运算时发生的类型转换
  1)true/false转换1/0;
  2)null转换为0;
  3)字符串开头的部分的数值换为对应数值;
  4)字符串开头没数值则直接转为0;
  (null,string,bool) < int < float

2、强制类型转化

就是手动的把一个类型的值转换为另一个类型的值;
  1、类型转化函数 intval ,strval, floatval
    $num1 = 1.2;
    $num2 = strval($num1); //吧$num1的值转换为字符串;
    var_dump($num1); 
    var_dump($num2); 
  2、(类型)$变量  不能转为resource
    $num2 = (unset)$num2;转为空
  3、settype(变量,类型) 类型必须写成字符串;
    改变变量的类型和值;
  注意事项
    1)浮点数转整数,直接干掉小数;
    2) echo(int)($num1 + 0.5); 四舍五入

3、常量

1)常量定义
  define(常量名,常量值)
  define(‘SONG',22);
注意:
  1)常量名是字符串;
  2)常量值必须是标量
  3)常量名一般大写,和变量做区别;
  4)常量名和变量名,命名规则相同;
2)系统常量
  __LINE__ 当前行号
  __FILE__ 当前文件的名称
  __DIR__ 当前文件的目录;
  PHP_OS  操作系统
  PHP_VERSION php的版本

魔术常量:
__FUNCTION__ 函数名
__FUNCTION__函数名;
__CLASS__ 类名
__CLASS__ 类名
__METHOD__方法名
__METHOD__方法民
__NAMESPACE__ :名空间
__NAMESPACE__ 名空间;
3)常量判断
  defined(常量名) 常量名必须是字符串;
  判断是否定义过常量;

4.运算符和表达式;

1)算数运算符 + - (乘法) /(除法) % .
%求模/取余
0 % 3 = 0
12 % 10 = 2
5 % 19 = 4
1 % 3 = 1;
2 % 3 = 2;
3 % 3 = 0;
-9 % 4 = -1
9 % -4 = 1;
模运算的结果的符号取决于第一个数。
判断奇偶
X%2 == 0 为偶数,能整除
X%2 != 0 则为奇数,不能整除
2 * 3 = 8
指数运算;
2 3 = 8;
3 2 = 9;

如有疑问请留言或到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

PHP 相关文章推荐
关于在php.ini中添加extension=php_mysqli.dll指令的说明
Jun 14 PHP
PHP读取MySQL数据代码
Jun 05 PHP
Php 构造函数construct的前下划线是双的_
Dec 08 PHP
PHP执行linux系统命令的常用函数使用说明
Apr 27 PHP
discuz程序的PHP加密函数原理分析
Aug 05 PHP
PHP mysqli事务操作常用方法分析
Jul 22 PHP
Laravel中服务提供者和门面模式的入门介绍
Nov 06 PHP
PHP递归实现汉诺塔问题的方法示例
Nov 25 PHP
php实现微信原生支付(扫码支付)功能
May 30 PHP
PhpStorm配置Xdebug调试的方法步骤
Feb 02 PHP
Laravel 模型使用软删除-左连接查询-表起别名示例
Oct 24 PHP
php连接mysql之mysql_connect()与mysqli_connect()的区别
Jul 19 PHP
利用php获得flv视频长度的实例代码
Oct 26 #PHP
PHP 中魔术常量的实例详解
Oct 26 #PHP
yii框架redis结合php实现秒杀效果(实例代码)
Oct 26 #PHP
PHP对象的浅复制与深复制的实例详解
Oct 26 #PHP
PHP中的浅复制与深复制的实例详解
Oct 26 #PHP
thinkPHP5实现数据库添加内容的方法
Oct 25 #PHP
thinkPHP5分页功能实现方法分析
Oct 25 #PHP
You might like
php图片缩放实现方法
2014/02/20 PHP
PHP发送AT指令实例代码
2016/05/26 PHP
JS input 数字验证代码
2009/07/30 Javascript
JavaScript 读取元素的CSS信息的代码
2010/02/07 Javascript
javascript学习笔记(九) js对象 设计模式
2012/06/19 Javascript
JS模拟自动点击的简单实例
2013/08/08 Javascript
关于编写性能高效的javascript事件的技术
2014/11/28 Javascript
JavaScript中的ArrayBuffer详细介绍
2014/12/08 Javascript
Javascript将JSON日期格式化
2016/08/23 Javascript
微信开发 JS-SDK 6.0.2 经常遇到问题总结
2016/12/08 Javascript
重新理解JavaScript的六种继承方式
2017/03/24 Javascript
微信JS-SDK选取手机照片上传功能
2017/04/21 Javascript
nodejs前端模板引擎swig入门详解
2018/05/15 NodeJs
mac上配置Android环境变量的方法
2018/07/08 Javascript
jQuery实现的记住帐号密码功能完整示例
2019/08/03 jQuery
Vue-cli3项目引入Typescript的实现方法
2019/10/18 Javascript
javascript实现弹幕墙效果
2019/11/28 Javascript
基于JavaScript实现表格隔行换色
2020/05/08 Javascript
[15:58]DOTA2国际邀请赛采访专栏:Tongfu.Sansheng&KingJ,DK.rOtk
2013/08/08 DOTA
[02:29]完美世界高校联赛上海赛区回顾
2015/12/15 DOTA
[01:34]DOTA2 7.22版本新增神杖效果一览(敏捷英雄篇)
2019/05/28 DOTA
[51:27]LGD vs Liquid 2019国际邀请赛小组赛 BO2 第二场 8.16
2019/08/19 DOTA
浅析Python中signal包的使用
2015/11/13 Python
对pandas中时间窗函数rolling的使用详解
2018/11/28 Python
Python3获取拉勾网招聘信息的方法实例
2019/04/03 Python
Python3 sys.argv[ ]用法详解
2019/10/24 Python
Python文件操作函数用法实例详解
2019/12/24 Python
在tensorflow中设置保存checkpoint的最大数量实例
2020/01/21 Python
关于Kotlin中SAM转换的那些事
2020/09/15 Python
HTML5 微格式和相关的属性名称
2010/02/10 HTML / CSS
有兼职工作经历的简历自我评价
2014/03/07 职场文书
倡议书范文格式
2014/05/12 职场文书
小学生竞选班干部演讲稿(5篇)
2014/09/12 职场文书
2014乡镇干部纪律作风整顿思想汇报
2014/09/13 职场文书
大学生党员自我剖析材料
2014/10/06 职场文书
2019年家电促销广告语集锦
2019/10/21 职场文书