【重点,哪些情况我们会将其它类型的值视为bool值的假:】
1. 整型的0会视为bool值的假来执行,任何非0的整型都视为真
2. 浮点的0.0不论后面有多少个0都视为假0.000000000,后面只要有一个非0值就为真
3. 字浮串的’0’,视为假,其他值全视为真来处理
4. 空字符串视为bool值的假‘’,只要中间有个空格都算真!
5. 空视为假处理(注意)
6. 数组当中一个东西都没有,就是空数组。就视为假来处理。当中只要有一个值,这个值即使为假或者空都视为真
7. 未声明成功的资源

#bool类型
$bool=true; /* 不要加引号*/
$bool=false; 1.整形 $bool=0; 假 非空为真
2.布尔型 $bool=null; 假 为空
3.浮点型 $bool=‘0’ 假
$bool=‘0.0’ 真 /*这个特殊*/
4.字符型 $bool=''; 假
$bool=""; 假
$bool=' '; 真 /*注意空格,这个特殊*/
$bool=" "; 真 /*注意空格,这个特殊*/
5.空数组 $bool=array(); 假
对象 $bool=object(); 假
资源 $bool=resource(); 假

判断空的函数:(重点)
Empty(只传一个变量),当传进去的变量为0,为false,为空,(只要为假的情况就返回真)(是否为空)

Isset(变量1,…,变量n) 可以传入一个或多个变量,只要当中有一个变为null,就返回false(是否被设置)

变量的引用:

变量的引用问题:
<?php
$a=60; $b=&$a;
//这个真正的意思是:把$a和$b同时指向同一个地方,以后无论换a的值还是b的值,(说白了,就是给$b起一个小名,都是一个值)
//它的地址还是指向a的;
$a=200;
$b=300;
echo '$a='.$a; //结果为$a=200
echo '<br/>';
echo '$b='.$b; //结果为$b=200
?>

常量的声明:

1.在运行过程当中值不发发生变化。
2.常量在运行过程当中值不可以被修改和删除
3.常量是全局的
4.常量用的值,我们通常只用标量
5.常量可以小写,但是为了更好的区分这是常量,通常大写。

注意:
调用常量,禁止在外加引号,双引单引都不行。这样的话是读取字符串

常量定义:

define('常量名','常量值');
define('ABC','发大财'); //这里ABC不加$,后面常量可以是整形,或者浮点型。

规则如下:
1.常量名:字母(一般大写),下划线,数字(不能开头)
2.常量值:只能用标量.
3.常量在运行过程当中不可以被重新赋值.
4.unset(ABC);不能删除 //我们数据库的地址,不用改变,我们用它的特性来定一个常量
5.常量是全局的
6.常量名通常大写

PHP超全局数组及外部变量

超全局数组:

$_POST      post传值
$_GET get传值,可以在浏览器的地址栏来直接传值

注意:

post发送的内容只能用post来接收,而get发送的内容只能用get接收
$_REQUEST   post与get模式都可以接收到

$_REQUEST   post与get模式都可以接收到

数据类型:
有时候我们只需要获取数据的类型,这时我们就需要判断类型的函数

is_float()类型:判断是不是浮点型

$b=3.2;
if(is_float($b)){
echo '真';
}else{
echo '假'
}
//结果为:真

is_int()类型:判断是不是整型

  $a=99; 
if(is_int($a)){  
echo '真'; 
}else{  
echo '假'; 
} 
//结果是:真

is_bool()类型: 判断是不是布尔型

$a=false;
if(is_bool($a)){
 echo '真';
}else{ 
echo '假';
}
//结果是:真

is_string()类型:判断是不是字符串

$a='abc';
 if(is_string($a)){ 
echo '真';
}else{
  echo '假';
}
//结果为真

is_array()类型:判断是不是数组

<?php 
$a=array(1,2,3,4,5,6,);
if(is_array($a)){ 
echo '真';
}else{  
echo '假';
}
//结果为真

is_null()类型:判断是不是空

$a=null;
if(is_null($a)){ 
echo '真'; 
}else{ 
echo '假';
}
//结果为:真

is_object()类型:判断是不是对象

···
is_numeric()类型:判断是不是数字

···
is_callable()类型:判断是不是函数

···

自动类型转换:
发生情况:

第一.在运算的时候
第二. 在判断的时候

当bool值与整型相运算的时候:
1.将bool值的真变为整型的1来执行
2.将bool值的假变为整型的0来执行
 
当bool值与浮点进行运算的时候:
1.bool值的真会变为浮点的1.0来参与运算
2.bool值的false会变为浮点的0.0

当字符串与一个整型或浮点相加的时候:
1.会将后面的字符串全部干掉
2.只会将前面的数值和对应的整型或浮点相运算
3.如果字符串参与运算的时候必须要数值放在最前面。如果放到中间或者后面,会视为0来运算

PHP基本语法(二)的更多相关文章

  1. PHP语法(二):数据类型、运算符和函数

    相关链接: PHP语法(一):基础和变量 PHP语法(二):数据类型.运算符和函数 PHP语法(三):控制结构(For循环/If/Switch/While) 这次整理了PHP的数据类型.运算符和函数. ...

  2. Python 基础语法(二)

    Python 基础语法(二) --------------------------------------------接 Python 基础语法(一) ------------------------ ...

  3. web前端学习python之第一章_基础语法(二)

    web前端学习python之第一章_基础语法(二) 前言:最近新做了一个管理系统,前端已经基本完成, 但是后端人手不足没人给我写接口,自力更生丰衣足食, 所以决定自学python自己给自己写接口哈哈哈 ...

  4. MySQL之单表查询 一 单表查询的语法 二 关键字的执行优先级(重点) 三 简单查询 四 WHERE约束 五 分组查询:GROUP BY 六 HAVING过滤 七 查询排序:ORDER BY 八 限制查询的记录数:LIMIT 九 使用正则表达式查询

    MySQL之单表查询 阅读目录 一 单表查询的语法 二 关键字的执行优先级(重点) 三 简单查询 四 WHERE约束 五 分组查询:GROUP BY 六 HAVING过滤 七 查询排序:ORDER B ...

  5. CodeSmith 基本语法(二)

    CodeSmith之四 - 典型实例(四) CodeSmith API文档 (三) CodeSmith 基本语法(二) CodeSmith 图形界面基本操作(一) CodeSmith的C#语法与Asp ...

  6. Pocket英语语法---二、指示代词和不定代词是什么

    Pocket英语语法---二.指示代词和不定代词是什么 一.总结 一句话总结: 指示代词:标识人或事物的代词,用来代替前面已提到过的名词 this.these.that.those不定代词:指代不确定 ...

  7. Vue模板语法(二)

    Vue模板语法(二) 样式绑定  class绑定 使用方式:v-bind:class="expression" expression的类型:字符串.数组.对象 1.2 style绑 ...

  8. Shell系列(36)- for循环语法二简介及批量添加删除用户

    for循环语法二 for ((初始值;循环控制条件;变量变化)) do 程序 done 例子 例子-1 求和工具 需求:根据用户输入的数字,求1~输入所有数字的和 脚本: #!/bin/bash re ...

  9. Python基本语法[二],python入门到精通[四]

    在上一篇博客Python基本语法,python入门到精通[二]已经为大家简单介绍了一下python的基本语法,上一篇博客的基本语法只是一个预览版的,目的是让大家对python的基本语法有个大概的了解. ...

  10. ios -- 教你如何轻松学习Swift语法(二)

    前言:swift语法基础篇(二)来了,想学习swift的朋友可以拿去参考哦,有兴趣可以相互探讨,共同学习哦.      一.可选类型(重点内容)   1.什么是可选类型?        1.1在OC开 ...

随机推荐

  1. C#正则表达式之字符替换

    string strTest= "www.BaiDu.com",strRst=""; //忽略大小写,将strTest中的BaiDu替换为baidu Regex ...

  2. 练习--LINUX进程间通信之信号SIGNAL

    同样的,信号也不要太迷信可靠信号及不及靠信号,实时或非实时信号. 但必须要了解这些信号之间的差异,函数升级及参数,才能熟练运用. ~~~~~~~~~~~~~~~~ 信号本质 信号是在软件层次上对中断机 ...

  3. 关于安装完Node.js 出现node is not dedined 问题

    今天想来接触下Node.js 神奇  怀着揣揣的心 从官网下载了windows 的64位mis版本  几个下一步就顺利安装完毕了 接着跟着新手教程走  不懂教程里的 苹果shell 是什么 反正就是检 ...

  4. 【Linux安全】chattr命令锁定账户敏感文件

    有时候你发现用root权限都不能修改某个文件,大部分原因是曾经用chattr命令锁定该文件了.chattr命令的作用很大,其中一些功能是由Linux内核版本来支持的,不过现在生产绝大部分跑的linux ...

  5. IPv6 tutorial – Part 6: Site-local addresses and link-local addresses

    https://4sysops.com/archives/ipv6-tutorial-part-6-site-local-addresses-and-link-local-addresses/ In ...

  6. MapReduce的数据流程、执行流程

    MapReduce的数据流程: 预先加载本地的输入文件 经过MAP处理产生中间结果 经过shuffle程序将相同key的中间结果分发到同一节点上处理 Recude处理产生结果输出 将结果输出保存在hd ...

  7. memcached SASL验证状态安全绕过漏洞

    漏洞版本: memcached 1.x 漏洞描述: Memcached是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载. Memcached在处理链接的SASL验证状态时存在错 ...

  8. SharePoint Services 数据库表

    转:http://dugan.bokee.com/630446.html 以下是Microsoft Windows SharePoint Services架构中数据库列表. Configuration ...

  9. net 内存泄露和内存溢出

    一直以来都对内存泄露和内存溢出理解的不是很深刻.在网上看到了几篇文章,于是整理了一下自己对内存泄露和内存溢出的理解. 一.概念 内存溢出:指程序在运行的过程中,程序对内存的需求超过了超过了计算机分配给 ...

  10. 最近用unity5弄的一些渲染

    unity5 人皮渲染  Skin Shading 换了一种方法,优化了一下代码,unity5效果很好,消耗不大 点开可查看大图 加入了次表面散射的阴影与自阴影 unity5  ocean real- ...