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_xsub_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将寻找于变量的值同名的函数,并尝试执行他。

匿名函数

也叫闭包函数,语序临时创建一个没有指定名称的函数。

0 0
原创粉丝点击