PHP从头开始-3
来源:互联网 发布:淘宝集运4px递四方速递 编辑:程序博客网 时间:2024/06/04 23:29
变量
基础
变量用一个美元符号跟变量名来表示,区分大小写。
变量默认总是传值赋值。要使用引用赋值,将一个&
符号加到源变量前
未初始化的变量具有默认值
预定义变量
另文
变量范围(作用域)
大部分变量只有一个单独的范围,包含include和require引入的文件
global关键字
在方法内使用global关键字申明全局变量
使用$GLOBALS数组,索引为变量名的字符串。
静态变量
程序离开作用域时,值不丢失
全局和静态变量的引用
在 Zend 引擎 1 代,它驱动了 PHP4,对于变量的 static 和 global 定义是以引用的方式实现的。
可变变量
变量名可以动态的设置和使用
<?php$a = 'hello';$ $a ='world';echo "$a ${$a}"echo "$a $hello";
二者的输出是完全一样的。
来自PHP之外的变量
HTML表单(GET和POST)
使用超全局变量$_POST
和$_GET
IMAGE SUBMIT变量名
当用图片替代标准按钮是,除了表单,还会包含点击的图片位置的两个变量sub_x
和sub_y
。
HTTP Cookies
$_COOKIE
setcookie()
变量名中的点
自动替换成下划线
确定变量类型
php会判断变量类型并在需要的时候进行转换,因此在某一时刻给定的变量是何种类型并不明显。
常量
语法
用defined()
函数定义常量,一旦定义不能改变或者取消。
常量只能包含标量数据(boolean,integer,folat和string)。不该在常量前加“$”,如果常量名是动态的,可以用constant()
获取常量值,用get_defined_constants()
可以获取已经定义的常量列表。
常量和变量有如下不同:
1. 常量前面没有美元符号($);
2. 常量只能用 define() 函数定义,而不能通过赋值语句;
3. 常量可以不用理会变量的作用域而在任何地方定义和访问;
4. 常量一旦定义就不能被重新定义或者取消定义;
5. 常量的值只能是标量。
魔术常量
PHP向他运行的任何脚本提供了大量预定义常量。有八个魔术常量他们的值随他们在代码中的位置改变而改变。
- LINE 文件中的当前行号。
- FILE 文件的完整路径和文件名。如果用在被包含文件中,则返回被包含的文件名。自 PHP 4.0.2 起, FILE 总是包含一个绝对路径(如果是符号连接,则是解析后的绝对路径),而在此之前的版本有时会包含一个相对路径。
- DIR 文件所在的目录。如果用在被包括文件中,则返回被包括的文件所在的目录。它等价于 dirname(FILE)。除非是根目录,否则目录中名不包括末尾的斜杠。(PHP 5.3.0中新增) =
- FUNCTION 函数名称(PHP 4.3.0 新加)。自 PHP 5 起本常量返回该函数被定义时的名字(区分大小写)。在 PHP 4 中该值总是小写字母的。
- CLASS 类的名称(PHP 4.3.0 新加)。自 PHP 5 起本常量返回该类被定义时的名字(区分大小写)。在 PHP 4 中该值总是小写字母的。类名包括其被声明的作用区域(例如 Foo\Bar)。注意自 PHP 5.4 起 CLASS 对 trait 也起作用。当用在 trait 方法中时,CLASS 是调用 trait 方法的类的名字。
- TRAIT Trait 的名字(PHP 5.4.0 新加)。自 PHP 5.4 起此常量返回 trait 被定义时的名字(区分大小写)。Trait 名包括其被声明的作用区域(例如 Foo\Bar)。
- METHOD 类的方法名(PHP 5.0.0 新加)。返回该方法被定义时的名字(区分大小写)。
- NAMESPACE 当前命名空间的名称(区分大小写)。此常量是在编译时定义的(PHP 5.3.0 新增)。
运算符
运算符优先级
尽量使用括号增加可读性
算术运算符
与基本数学一致。
出发总是返回浮点数,除非两个整数正好整除。
赋值运算符
基本类型传值,其他传引用。
位运算符
任何方向移出去的位都会被丢弃,正负号不保留。
比较运算符
等于,比较类型转换后是否相等
全等去,除了值相等,类型也必须相等
错误控制运算符
@
放在表达式前,则该表达式产生的任何错误信息都会被忽略掉
执行运算符
反引号"`"
,将其中内容作为外城命令来执行,并将其输出信息返回。
递增、递减运算符
++,–
逻辑运算符
&&,||,!,Xor。
字符串运算符
.
和.=
数组运算符
联合:+
等/不等:==/!=(<>)
全等/不全等:===/!==
类型运算符
instanceof
确定一个变量是否属于某一类的实例。
流程控制
if,else;while;do-while;for;foreach;switch;continue;break;return
流程控制的替代语法
把左花括号换成冒号“{“–>”:”。
右花括号换成“endif”;”endwhile”,”endfor”,”endforeach”,”endswitch”。
替代语法中else if不能分开写。
declare
设定一段代码的执行指令
Ticks
时钟周期是在declare代码段中解释器每执行N跳指令就会发生的事件。
<?php declare( ticks = 1 );//N在此处指定为1 // A function called on each tick event function tick_handler (){ echo "tick_handler() called\n" ;} register_tick_function ( 'tick_handler' ); $a = 1 ;if ( $a > 0 ) { $a += 2 ; print( $a );} ?>
Encoding
对每段脚本指定其编码方式。
require、include
包含并运行指定文件,查找优先级为:
1. 参数路径
2. include_path目录
3. 调用脚本文件所在目录和当前目录
require处理失败时终止,产生错误,include处理失败时继续运行,产生警告。
当文件被包含时,被包含文件的内容就可以被包含的文件所使用。
require_once、include_once
只包含一次
变量重新赋值,函数重复定义等问题
goto
跳转到标记位置。
用目标名称和冒号标记。
函数
用户自定义函数
任何有效的php代码都能出现在函数内部,包括其他函数的和类的定义。
函数的调用不必再定义之前,除非是有条件定义。如:
<?php$makefoo = true ; /* 不能在此处调用foo()函数, 因为它还不存在,但可以调用bar()函数。*/ bar ();if ( $makefoo ) { function foo () { echo "I don't exist until program execution reaches me.\n" ; }} /* 现在可以安全调用函数 foo()了, 因为 $makefoo 值为真 */ if ( $makefoo ) foo ();function bar (){ echo "I exist immediately upon program start.\n" ;} ?>
所有函数都具有全局作用域,定义在函数内的函数可以在函数外被调用。
支持可变数量的参数
函数参数
php默认按值传参。
按引用传参
在定义函数的参数前加上&
。
默认参数
默认参数必须是常量表达式。
任何默认参数必须放在肥默认参数的右侧。
可变函数
如果变量名后面有圆括号,php将寻找于变量的值同名的函数,并尝试执行他。
匿名函数
也叫闭包函数,语序临时创建一个没有指定名称的函数。
- PHP从头开始-3
- PHP从头开始
- PHP从头开始-1
- PHP从头开始-2
- PHP从头开始-4
- PHP从头开始-5
- php从头开始
- 从头开始编译 PHP 5.5
- [php learn] php 从头开始学习1
- 从头开始
- 从头开始
- 从头开始
- 从头开始
- 从头开始?
- 从头开始
- 从头开始
- 从头开始
- 从头开始
- CClientDC和CPaintDC、CWindowsDC之间的联系和区别
- Gulp入门
- spawn-fcgi 源码分析
- oracle外键关联而无法删除数据
- Java中对已有的Set进行排序问题
- PHP从头开始-3
- iOS---tableview加载图片的时候的优化之lazy(懒加载)模式and异步加载模式
- JUnit4 与 JMock 之双剑合璧
- CSU1613 Elephants
- Mysql中文乱码问题完美解决方案(包括建库、导入数据、网页)
- Android之菜单总结
- 短信验证安卓集成mob.com
- LightOJ 1138Trailing Zeroes (III)
- codeforces 324# D. Dima and Lisa (素数问题)