·插补操作
将简单变量写入一个由双引号引用的字符串中,就叫插补操作。例如:
$test = 'xx';
echo "你好:$test";
注意:插补操作只是双引号引用字符串的特性。
·变量和字面量
参照上面的例子。'xx'是字面量,而 $test是变量。
·数据类型
·Integer(整数):用来表示整数
·Float(浮点数,也叫Double,双精度):用来表示所有的实数
·String(字符串):用来表示字符串
·Boolean(布尔值):用来表示true或者false
·Array(数组):用来保存具有相同类型的多个数据项
·Obejct(对象):用来保存类的实例
特殊类型
·NULL(空):没有被赋值、已经被重置或者被赋值被特殊值NULL的变量就是NULL类型变量。
·resource(资源):特定的内置函数(例如数据库函数)将返回resource类型的变量。它们代表外部资源(例如数据库连接)。
基本上不能直接操作一个resource变量,但是通常它们都将被函返回,而且必须作为参数传递给其他函数。
·Callable :通常都是可以传递给其他函数的函数。
·类型强度
PHP是一种弱类型语言,或者动态类型语言,变量的类型是由赋给变量的值确定的。
·类型转换
使用类型转换,可以将一个变量或值转换成另一种类型。只需在希望进行类型转换的变量之前的圆括号中插入需要转换的临时数据类型即可。
$num = 0;
$theNum = (float)$num;
第二行代码的意思是:取出保存在$num的值,将其解释成一个浮点型,并将其保存在$theNum中。$theNum变量将变成浮点类型。
·可变变量
PHP提供了一种其他类型的变量:可变变量。可变变量允许我们动态地改变一个变量的名称。
这个特性的工作原理是用一个变量的值作为另一个变量的名称。例如:
$varname = 'tireqty'; //于是可以用 $$varname 取代 $tireqty。
$$varname = 5; // 这段代码等价于:$tireqty = 5;
·声明变量和使用常量
定义方式:
define('NAME','程琳');
echo NAME;
通常常量名称都是由大写字母组成的,这是借鉴了C语言的惯例,这样就很容易区分变量和常量。
注意:常量只可保存布尔值、整数、浮点数或者字符串数据,这些类型都是标量数据。
·变量作用域
·内置超全局变量可以在脚本的任何地方使用和可见。
·常量,一旦被声明,将在全局可见;也就是说,它们可以在函数内外使用。
·在一个脚本中声明的全局变量在整个脚本中是可见的,但不是在函数内部。
·函数内部使用的变量声明为全局变量时,其名称要与全局变量名称一致。
·在函数内部创建并被声明为静态的变量无法在函数外部可见,但是可以在函数的多次执行调用过程中保持该值。
·在函数内部创建的变量对函数来说时本地的,而当函数终止时,该变量也就不存在了。
·超全局变量
即在全部作用域中始终可用的内置变量
·$GOLBALS :所有全局变量数组 ($GLOBALS['_SERVER']
·$_SERVER : 服务器环境变量数组
·$_GET : 通过GET方法传递给该脚本的变量数组
·$_POST : 通过POST方法传递给该脚本的变量数组
·$_COOKIE : cookie变量数组
·$_FILES : 与文件上载相关的变量数组
·$_ENV : 环境变量数组
·$_REQUEST : 所有用户输入的变量数组,包括_GET、$_POST和$_COOKIE所包含的输入内容(但是,不包括$_FILES
·$_SESSION : 会话变量数组
·操作符
·算术操作符
+ - * / %
你应该注意到,算数操作符通常用于整型或双精度类型的数据。如果将它们应用到字符串,PHP会试图将这些字符串转换成一个数字。
如果其中包含'e' 或 "E" 字符,它会被当做科学表示法并被转换成浮点数,否则将被转换成整数。PHP会在字符串开始处寻找数字
,并使用这些数字作为该字符串的值,如果没有在开始处找到数字,该字符串的值为0
·字符串操作符
.
·赋值操作符
=
·赋值运算返回值
与其他操作符一样,使用赋值操作符也会返回一个值:
echo 1 + ($a = 2); // 3
·复合赋值操作符
+= -= *= /= %= .=
·前置递增递减和后置递增递减操作符
省略...
·引用操作符
·通常,在将一个变量的值赋给另一个变量的时候,先产生原变量的一个副本,然后再将它保存在内存的其它地方。
$a = 5;
$b = $a;
这两行代码首先产生$a 的一个副本,然后再将它保存到$b中。如果随后改变$a的值,$b的值不会被改变。 ·要避免产生副本,可以使用引用操作符:
$a = 5;
$b = &$a;
引用操作符非常有趣,请记住,引用就像一个别名,而不是一个指针。$a和$b都指向了内存的相同地址。你可以通过重置使
变量不指向原来的内存地址:
unset($a);
重置变量并不会改变$b(7)的值,但是可以破坏$a和值7在内存中地址的链接。
·比较操作符
比较操作符用来比较两个值。比较操作符表达式根据比较结果返回逻辑值:true 或 false;
·等于操作符
等于操作符==(两个等号)允许测试两个值是否相等
·其它比较操作符
=== : 恒等,只有两边的操作数相等并且具有相同的数据类型时,才返回true
<> : 不等,作用相当于 !=
·逻辑操作符
! , && , ||
·位操作符
不常用,省略
·其它操作符
·三元操作符
condition ? value if true : value if false;
·错误抑制操作符
错误抑制操作符@可以在任何表达式之前使用,即任何有值的或者可以计算出值的表达式之前。
$a = @(1/0);
var_dump($a); //false
如果没有@操作符,这一行代码将产生一个除0警告,使用这个操作符后,这个警告就会被抑制住。
·数组操作符
PHP提供了一些数组操作符,数组操作符([])支持访问数组元素。在某些数组上下文中,也可以使用=>操作符
其他数组操作符
操作符 名称 使用方法 结果
+ 联合 $a+$b 返回一个包含了$a和$b中所有元素的数组
== 等价 $a== $b 如果 $a,$b有相同的键值对,返回true
=== 恒等 $a=== $b 如果$a,$b有相同的键值对以及相同的顺序,返回true
!= 非等价
<> 非等价
!== 非恒等
注意:不能将标量类型与数组进行比较。
·类型操作符
只有一个类型操作符:instanceof 。这个对象在面对对象编程中使用。
instanceof操作符允许检查一个对象是否为特定类的实例。
class sampClass{};
$myObject = new sampClass();
var_dump($myObject instanceof sampClass); //true
·使用变量处理函数
·大部分变量函数都测试一个函数的类型相关。PHP有两个最常见的变量函数,分别是gettype()和settype()
string gettype(mixed var);
bool settype(mixed var , string type);
·要使用gettype()函数,必须先给它传递一个变量。它将确定变量的类型并返回一个包含类型名称的字符串:boolean、integer、
double(用于浮点型,因历史原因易混淆)、string、array、object、resource或NULL。如果变量类型不是标准类型之一,
该函数就会返回"unknown type";
·要使用settype()函数,必须先给它传递一个要改变类型的变量,以及包含了上述类型列表中某个类型的字符串。
$test = 1;
var_dump(gettype($test)); //integer
var_dump(settype($test,'double')); //true
var_dump(gettype($test)); //double
·PHP还提供了一些特定的类型测试函数。每一个函数都使用一个变量作为其参数,并返回true或者false:
is_array()
is_double(),is_float(),is_real()(所有都时相同的函数)
is_long(),is_int(),is_integer()(所有都时相同的函数)
is_string()
is_bool()
is_object()
is_resource() :检测变量是否是一个资源
is_null()
is_scalar() :检测变量是否是标量,也就是,是否为整数、布尔值、字符串或浮点数
is_numeric() :检测变量是否是任何类型的数字或数字字符串
is_callable() :检测变量是否是有效的函数名称
·检测变量状态函数:
·isset()
bool isset(mixed var[, mixed var[,...]])
这个函数需要一个变量名做参数。也可以传递一个由逗号间隔的变量列表
·unset()
void unset(mixed var[, mixed var[,...]])
你也可以使用与isset()函数相对应的unset()函数对应的unset()函数来销毁一个变量
·empty()
bool empty(mixed var)
·变量的重解释
你可以通过调用一个函数来实现转换变量数据类型的目的。如下3个函数可以用来实现这个功能
int intval(mixed var[,int base=10]) :允许在要转换的变量为字符串时,指定转换的进制基数(这样,可以将16进制的字符串转换为整数)
float floatval(mixed var)
string strval(mixed var)
·混合数据类型
本书和php.net文档都提到了'混合'数据类型,事实上PHP并没有这个类型。但PHP在类型处理方面非常灵活,因此很多函数可以多种(或者任意)
数据类型作为参数。这些类型所允许的参数通常都是伪"混合"类型。
·根据条件进行决策
控制结构是程序语言中用来控制程序或脚本执行流程的结构。我们可以把它们分类为条件(或者分支)结构和重复结构(或循环结构)
·switch : switch语句与js的switch语句类似,区别在于php的switch语句switch在比较值使用的是相等操作符,因此会发生类型转换。
·break 和 continue :和js类似

php 基础系列之 php快速入门的更多相关文章

  1. ElasticSearch实战系列八: Filebeat快速入门和使用---图文详解

    前言 本文主要介绍的是ELK日志系统中的Filebeat快速入门教程. ELK介绍 ELK是三个开源软件的缩写,分别表示:Elasticsearch , Logstash, Kibana , 它们都是 ...

  2. Java基础-SSM之Spring快速入门篇

    Java基础-SSM之Spring快速入门篇 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任.    Spring是一个开源框架,Spring是于2003 年兴起的一个轻量级的Java ...

  3. Java基础-SSM之mybatis快速入门篇

    Java基础-SSM之mybatis快速入门篇 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 其实你可能会问什么是SSM,简单的说就是spring mvc + Spring + m ...

  4. ElasticSearch实战系列六: Logstash快速入门和实战

    前言 本文主要介绍的是ELK日志系统中的Logstash快速入门和实战 ELK介绍 ELK是三个开源软件的缩写,分别表示:Elasticsearch , Logstash, Kibana , 它们都是 ...

  5. Gradle学习系列之一——Gradle快速入门

    这是一个关于Gradle的学习系列,其中包含以下文章: Gradle快速入门 创建Task的多种方法 读懂Gradle语法 增量式构建 自定义Property 使用java Plugin 依赖管理 构 ...

  6. Gradle学习系列之一——Gradle快速入门(转)

    这是一个关于Gradle的学习系列,其中包含以下文章: Gradle快速入门 创建Task的多种方法 读懂Gradle语法 增量式构建 自定义Property 使用java Plugin 依赖管理 构 ...

  7. 我给女朋友讲编程html系列(1) -- Html快速入门

    Html是一门编写网页的语言. 在我学习Html的时候,网上的很多朋友说,直接使用[记事本]编写就行了,最后保存为后缀名为 .html 的文件. 不过,我建议你用[Nodepad++]来编写网页,用这 ...

  8. SPRING-BOOT系列之SpringBoot快速入门

    今天 , 正式来介绍SpringBoot快速入门 : 可以去如类似 https://docs.spring.io/spring-boot/docs/2.1.0.BUILD-SNAPSHOT/refer ...

  9. 菜鸟系列k8s——k8s快速入门(1)

    k8s快速入门 1.快速创建k8s集群 参考网站:https://kubernetes.io/docs/tutorials/kubernetes-basics 点击教程菜单 1. Create a C ...

随机推荐

  1. Wannafly Winter Camp 2020 Day 6C 酒馆战棋 - 贪心

    你方有 \(n\) 个人,攻击力和血量都是 \(1\).对方有 \(a\) 个普通人, \(b\) 个只有盾的,\(c\) 个只有嘲讽的,\(d\) 个有盾又有嘲讽的,他们的攻击力和血量都是无穷大.有 ...

  2. ARM微处理器中支持字节、半字、字三种数据类型,地址的低两位为0是啥意思?

    问题: ARM微处理器中支持字节.半字.字三种数据类型,其中,字需要4字节对齐(地址的低两位为0).半字需要2字节对齐(地址的最低位为0).我想问的是括号中的内容是什么意思呢?请牛人帮忙解释一下!谢谢 ...

  3. Redis-03-集群搭建

    基于redis-3.2.4的Redis-Cluster集群搭建 原理 Redis 集群采用了P2P的模式,完全去中心化.Redis 把所有的 Key 分成了 16384 个 slot,每个 Redis ...

  4. Git的学习和使用

    1.1. Git 了解git的仓库概念 熟悉何为版本控制,了解分布式版本控制(git)和集中式版本控制(svn) 能够熟练使用git的基本指令完成仓库的初始化/添加/提交/日志/回退/分支等操作 gi ...

  5. vue自定义插件

    1.新建js文件 utils.js,自定义方法 let local = { say() { console.log('我是插件里面自定义的方法') } } export default { insta ...

  6. 我的JAVA环境搭建

    每次重装系统后的开发环境搭建,总是会花费大量的时间精力,软件下载安装啦,配置修改啦等等,索性把这些流程记录一下,毕竟时间就是金钱. 软件列表 JDK1.8 IntelliJ IDEA Navicat数 ...

  7. Java第三节课总结

    动手动脑1: package ketangceshia;import java.util.Random;public class fuben {    public static void main( ...

  8. 调用手机摄像头并上传图片--jquery ajax

    1.图片框样式与进度条样式 .alert_img_content { width: 44%; float: left; margin: 3%; border: 1px solid #ddd; back ...

  9. JavaDay9(下)

    Java learning_Day9(下) 本人学习视频用的是马士兵的,也在这里献上 <链接:https://pan.baidu.com/s/1qKNGJNh0GgvlJnitTJGqgA> ...

  10. excel给一列数据添加前缀和后缀

    1.选中一列单元格后设置单元格格式,在自定义中输入-----“前缀”@(前缀为需要添加的内容) 输入----@“后缀” 2.字符串拼接:“前缀”&B1,B1&“后缀”