·插补操作
将简单变量写入一个由双引号引用的字符串中,就叫插补操作。例如:
$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. QPixmap和QImage

    1.QPixmap QPixmap的设计本来就是用来加速显示,用paint绘图时用QPixmap会比其他类的效果好很多.一般小图片用QPixmap. 2.QImage 依赖软件,直接像素访问,适合大图 ...

  2. 对象浅拷贝Object.assign

    const target = { a: { b: { c: { d: 1 } }, e: 5, f: 6, h: 10 } } const source = { a: { b: { c: { d: 1 ...

  3. 一维数组、二维数组——Java

    一. 一维数组 1.  数组是相同类型数据的有序集合 相同类型的若干个数据,按照一定先后次序排列组合而成 每个数组元素可以通过一个下标来访问它们 其中,每一个数据称作一个数组元素 2. 数组特点: 其 ...

  4. 使用ASP.NET Core 3.x 构建 RESTful API - 4.1 面向外部的Model

    Entity Framework Core 使用的 Entity Model 是用来表示数据库里面的记录的. 而面向外部的 model 则表示了要传输的东西.这类 model 有时候叫做 Dto,有时 ...

  5. python常见函数积累

    shape() 返回数组或者数据框有多少行或者多少列 import numpy as np x = np.array([[1,2,5],[2,3,5],[3,4,5],[2,3,6]]) #输出数组的 ...

  6. 优先队列-UVA10603

    #include<cstdio> #include<cstring> #include<queue> using namespace std; typedef st ...

  7. Linux网络课程学习第六天

    本节课程主要内容:针对第四章节进行了收尾,以及对第五章的用户身份与文件权限进行了详细讲解. 学习心得:干货很多,收获满满.

  8. json转dataset的另外一种解析方式自动生成guid强关联

    /// <summary> /// 将json字符串自动转成dataset,并且自动补全主子关联关系, /// Guid,FKGuid /// Author:lijia /// date: ...

  9. 使用ssh localhost命令,发生异常ssh: connect to host localhost port 22: Connection refused

    使用"ssh localhost"命令,失败: 问题分析如下: 出现这个问题是因为Ubuntu默认没有安装openssh-server.检查是否安装了openssh-server, ...

  10. StarUML 2下载、安装、破解全过程

      StarUML官方下载地址:  http://staruml.io/download 破解: ​  1.使用Editplus或者Notepad++等特殊的文本编辑器打开 安装位置下/www/lic ...