输出打印语句**
- echo
- var_dump
- print_r
书写规范
- 每行语句后面以
;
号结束 - 字符型的值用
"" ''
单引号或双引号来包含 - 双引号里的变量会被解析,而单引号里边的变量不被解析
- 在双引号字符串里使用[]包含数组或方法函数对象也可以被解析
- 在双引号字符串里可以使用
{}
包括表达式,里面的表达式要紧贴挂号,不能有空格。 - 需要转义
\
时用双引号 - 布尔类型的和数字整数浮点数不用加引号
$
值名称不能以数字开头,名称不能有空格,区分大小写,函数方法名、类名也是一样- 注释不可嵌套
- 初始化变量是个好习惯
require
一个文件出现错误的话,那么程序就会中断执行了,并会显示致命错误。有返回值include
一个文件存在错误的话,那么程序不会中断,而是继续执行,并显示一个警告错误。没有返回值- 最大整数
-2147483648~2147483684
其他概念
- 表达式的值即为他们的返回值
- 赋值的操作是顺序是从右到左的
- 三元运算符要避免堆砌使用,避免读代码时的困难程度
##数据类型 标量类型
- boolean 布尔型:ture或false 不区分大小写
- integer 整型 -xxx round()对 浮点数进行四舍五入的函数
- float 浮点型
- string 字符串
- heredoc结构 相当于可多行书写的""双引号结构 变量会解析
- nowdoc结构 相当于可多行书写的''单引号结构 不进行解析操作
- 字符串可以通过下标取
[]
或{}
取字符 - 直接把
array
,object
或resource
转换成string
不会得到除了其类型之外的任何有用信息 - 字符串转为数值:该字符串的开始部分决定了它的值。如果该字符串以合法的数值开始,则使用该数值。否则其值为 0(零)。合法数值由可选的正负号,后面跟着一个或多个数字(可能有小数点),再跟着可选的指数部分。指数部分由 'e' 或 'E' 后面跟着一个或多个数字构成。
复合类型
- array数组
array( key => value)
创建一个数组。数组由键和值组成- 键
(key)
可是是一个整数 integer 或字符串 string - 值
(value)
可以是任意类型的值 - 每一组数组单元用
,
隔开,最后一个数组的,
可以省略 - 在5.4起可以用
[]
替代array()
- 使用相同的键名会被覆盖,只剩下最后一个
- 如果对给出的值没有指定键名,则取当前最大的整数索引值,而新的键名将是该值加一。如果指定的键名已经有了值,则该值会被覆盖。
key
为可选项。如果未指定,PHP 将自动使用之前用过的最大 integer 键名加上1
作为新的键名,还可以只对某些单元指定键名而对其它的空置,其他键名自动会填充一个整数索引- 数组单元可以通过
array[key]
访问 - 数组可以嵌套,数组的值可以是一个数组,这样数组叫做多维数组。
- 要修改某个值,通过其键名给该单元赋一个新值,要删除某键值对,对其调用
unset()
函数,删除时不会重建索引。 - 不写键值会默认填充一个整数索引。取值为当前最大整数索引加上1。如果没有整数索引,则键名为0
array_values
重建索引foreach($a as $b)
遍历数组$a
中的数组单元赋值给$b
$foo['bar']
方括号[]
之间要加引号''
避免出错- 可以用
array_diff()
或数组运算符来比较数组 - 数组(Array)的赋值总是会涉及到值的拷贝。使用引用运算符
&
通过引用来拷贝数组 - 可以用
count()
来表示数组里元素的个数
- object 对象
- 要创建一个新的对象
object
,使用new
实例化一个类 new
给对象开辟一个新内存空间,用了储存对象
两种特殊类型
- resource 资源
- 资源
resource
是一种特殊变量,保存了到外部资源的一个引用。资源是通过专门的函数来建立和使用的。 - null 空;无类型
- 使用
(unset)$var
将一个变量转换为null将不会删除该变量或unset的值。仅仅是 返回null值而已。
伪类型
- mixed 混合类型
- number 数字类型
- callback 回调类型
类型的强制转换 允许的强制转换有:
- (int), (integer) - 转换为整形 integer
- (bool), (boolean) - 转换为布尔类型 boolean
- (float), (double), (real) - 转换为浮点型 float
- (string) - 转换为字符串 string
- (array) - 转换为数组 array
- (object) - 转换为对象 object
- (unset) - 转换为 NULL (PHP 5)
gettype() 查看表达式数据的类型 可以强制转换数据的类型
变量
$this
是一个特殊的变量,他不能被赋值.- 变量默认总是传值赋值。当一个变量的值赋予另外一个变量时,改变其中一个变量的值,将不会影响到另外一个变量。
- 引用赋值
&
,当一个变量的值赋予另外一个变量时,改变其中的一个变量的值,会影响到另外一个变量的值。**只有有名字的变量才可以引用赋值&
。 global
全局变量- function里不能直接调用局部变量,要把变量变为全局变量才可以调用
$GLOVALS
声明引用全局作用域中的全部变量,一个保护了全部变量的全局组合数组。变量的名字就数组的键。- 超全局变量>全局变量>局部变量
- 注意
局部,域
的概念 static
静态变量- 一般函数内变量在函数结束后被释放,比如局部变量。使用静态函数可以在下次再调用这个函数的时候,该变量值会保存下来
- 静态变量如果在声明中对表达式赋值会导致解析错误
- 引用赋值和静态变量有可能会有冲突
- 可变变量
$$a
变量名可以是变量,叫做可变变量- 如果出现运算顺序模棱两可的情况下时,可以使用大括号{}调整顺序,清晰定界
- 类的属性也可以用变量名来访问
- 在PHP的函数和类的方法中,超全局变量不能用作可变变量。$this变量也是一个特殊的变量,不能被动态引用。
常量
- 使用
define()
来定义常量 - 一个常量一旦被定义,就不能再改吧或者取消定义
- 常量前面没有
$
符号 - 常量的值只能是标量
- 常量要大写
- php5.3之后可以用
const
定义一个常量,要写在页头 - 魔术常量
__LINE__
文件中的当前行号__FILE__
文件完整的路径和文件名__DIR__
文件所在的目录。如果用在被包括的文件中,则返回被包括的文件所在的目录。除非是根目录,否则目录中名不包括末尾的斜杠\
。__FUNCTION__
函数名称。php5起常量返回该函数被定义的名字(区分大小写)__CLASS__
类的名称。__TRAIT__
triat的名字。__METHOD__
类的方法名。返回改方法被定义时的名字__NAMESPACE__
当前命名空间的名称(区分大小写)。此常量是在编译时定义的。
表达式
$a+=3
意思是取变量$的值,加上,得到的结果再次分配给a的值,加上3,得到的结果再次分配给$a。$a?$b:$c
如果第一个表达式的值是true(非零),那么计算第二个子表达式的值,其值为证表达式的值。否则,将是第3个子表达式的值
运算符
- 左结合:从左往右。右结合:从右向左
- 使用括号可以增加代码的可读性
%
取模运算结果会强制转化为整数- 赋值运算符
=
,数组array赋值运算符=>
,传递赋值运算符&
- 注意赋值运算将原变量的值拷贝到新变量中(传值赋值),所以改变其中的一个并不影响另一个。这也适合于在密集循环中拷贝一下值例如大数组。
- 在php中普通的传值行为有个例外就是碰到对象object时,在php5中式以引用赋值的,除非明确使用了clone关键字来拷贝
- php5起,
new
运算符自动返回一个引用,因此再对new
的结果进行引用赋值在php5.3以后版本中会出现错误 @
错误控制符。当将其放置在一个php表达式之前,该表达式可能产生的任何错误信息都被忽略掉。此运算符只对表达式有效。++$a
等于计算$a+1
并把值再赋予$a
,已经得到运算值$a++
等于$a
的值等于$a+1
,还未得到运算值.=
字符串连接赋值运算符,它将把右边的参数附加到左边的参数之后。- 数组运算
$a+$b
把右边的数组元素附加到左边的数组后面,两个数组中都有的键名,则只使用左边数组中的,右边的被忽略 - 类型运算符
instanceof
用于确定一个php变量是否属于某一类class的实例
流程控制
- 替代语法:PHP 提供了一些流程控制的替代语法,包括
if,while,for,foreach 和 switch
。替代语法的基本形式是把左花括号({)
换成冒号(:)
,把右花括号(})
分别换成endif;,endwhile;,endfor;,endforeach; 以及 endswitch;
。不支持在同一个控制块内混合使用两种语法。 while(){}
循环:表达式的值每次开始循环时检查,所以即使这个值在循环语句中改变了,语句也不会停止执行,直到本次循环结束。有时候如果while表达式一开始就是false,则循环语句一次都不会执行。do-while
其他 包含文件的语句 - 返回语句
- return
各种循环语句
- for(){}
- wile(){}
- swite(){}
- 数组的概念
- 创建和读取数组
- array
数据库
- 连接,增删改查操作
- contont
函数方法
- function()
- 自带函数
- 魔术方法 类的概念
- class()
- 对象实例化 new
- 对象调用$this->
正则表达式
mvc框架的概念 控制器概念 面向对象编程的概念 框架
评论 (0)