基本语法
php的标记使用<?php ?> 也可以使用<? ?> (需要打开短标签) 建议使用前者
文件末尾的 PHP 代码段结束标记可以不要,有些情况下当使用 include 或者 require 时省略掉会更好些,这样不期望的空白符就不会出现在文件末尾,之后仍然可以输出响应标头。在使用输出缓冲时也很便利,就不会看到由包含文件生成的不期望的空白符
<?php
echo "hello";
PHP 支持 C,C++ 和 Unix Shell 风格(Perl 风格)的注释
开头的注释 // 开头的注释, /**/ 段落注释
<?php
// 行内注释
# 行内注释
/*
段落注释
*/
?>
数据类型
四种标量类型:
boolean(布尔型)
integer(整型)
float(浮点型,也称作 double)
string(字符串)
三种复合类型:
array(数组)
object(对象)
callable(可调用)
最后是两种特殊类型:
resource(资源)
NULL(无类型)
1.布尔类型 Boolean
布尔类型只有true和false两个值
以下的值会认为是false。其他之外的都是true
布尔值 FALSE 本身
整型值 0(零)
浮点型值 0.0(零)
空字符串,以及字符串 "0"
不包括任何元素的数组
特殊类型 NULL(包括尚未赋值的变量)
从空标记生成的 SimpleXML 对象
var_dump((bool)'false') //true #字符串false
var_dump((bool) false) //false #布尔值false
- 整型int
整型值可以使用十进制,十六进制,八进制或二进制表示,前面可以加上可选的符号(- 或者 +)
自 PHP 4.4.0 和 PHP 5.0.5后,整型最大值可以用常量 PHP_INT_MAX 来表示,最小值可以在 PHP 7.0.0 及以后的版本中用常量 PHP_INT_MIN
123
-123
0123 #八进制
0x123 #十六进制
给定的一个数超出了 integer 的范围,将会被解释为 float。同样如果执行的运算结果超出了 integer 范围,也会返回 float
从其他类型转换成整型
布尔值转整型 false 产生 0 true 产生 1
从浮点型转换 向下取整 0.5 转换成 0
字符串转整型
如果该字符串没有包含 '.','e' 或 'E' 并且其数字值在整型的范围之内(由 PHP_INT_MAX 所定义),该字符串将被当成 integer 来取值。其它所有情况下都被作为 float 来取值。该字符串的开始部分决定了它的值。如果该字符串以合法的数值开始,则使用该数值。否则其值为 0(零)。合法数值由可选的正负号,后面跟着一个或多个数字(可能有小数点),再跟着可选的指数部分。指数部分由 'e' 或 'E' 后面跟着一个或多个数字构成
bob3+1 //1
3bob+1 //4
- 浮点数float
浮点数,也就是我们说的小数。由于浮点数的精度有限。尽管取决于系统,PHP 通常使用 IEEE 754 双精度格式,则由于取整而导致的最大相对误差为 1.11e-16
永远不要比较两个浮点数的值
4.字符串string
字符串由一些字符组成。字符串有四种表示方法
单引号
单引号是最简单的表示方法。在C语言中 单个字符用单引号表示。单引号的变量不解析.表达一个单引号自身,需在它的前面加个反斜线(**)来转义
$a = 'abc';
$b = '$a';//$a
$c = "$a"; //abc
双引号
双引号非转义任何其它字符都会导致反斜线被显示出来。{$var} 中的反斜线还不会被显示出来。
heredoc
heredoc 结构是一种提供一个开始标记和一个结束标记。方便书写大段的字符串。结束标记必须顶格写。
类似双引号。单引号不转义。变量解析
<?php
$heredoc = <<<START
FDSFDSFS
SDFSDTHIS DDSFS
任意字符
SF
START
?>
nowdoc
Nowdoc 结构是类似于单引号字符串的。Nowdoc 结构很象 heredoc 结构,但是 nowdoc 中不进行解析操作 nowdoc前需要加上单引号。
<?php
$str = <<<'EOD'
Example of string
spanning multiple lines
using nowdoc syntax.
EOD;
string中的字符可以通过一个从 0 开始的下标,用类似 array结构中的方括号包含对应的数字来访问和修改
字符串的链接
字符串的连接使用.(点)
转成字符串
布尔值 true转成1 。false 转成 “”
数组array转成 "array".object总是被转换成字符串 "Object",
- 数组array
php中的数组和C语言中的数组还有区别。它是一种hash 的类型。通过key=>value.通过数组可以实现丰富的数据类型,如字典、列表、集合、栈等。
定义数组
$arr = array(1,2,3);
//简写 php5.4+
$arr2 = [1,2,3];
$arr2[1];
$arr3 = ["key"=>"value"];
$arr3["key"];
PHP 将自动使用之前用过的最大 INT键名加上 1 作为新的键名.PHP 实际并不区分索引数组和关联数组。
- 对象object
创建一个新的对象的时候,使用new 关键字
class obj {}
$a = new obj();
7.资源类型resource
资源类型是保持外部的一个引用。如数据库的链接,文件的句柄等。
$fp = fopen("./a.log");//resource
- NULL类型
当一个变量没有被赋值,那么该变量的值就是null。以下的情况是一个变量被认为是null
被赋值成null
未赋值
被unset
$a = null // null
$b;//var_dump($b); null
$c = 1;
unset($c);//var_dump($c); null
- 回调 callback
function test(){
echo "echo";
}
call_user_function('test');
如果文章或资源对您有帮助,欢迎打赏作者。一路走来,感谢有您!
txttool.com 说一段 esp56物联 查询128 IP查询