一.中的四大文件包含语句
include(),include_once,require,require_once.
以include举例。
include()处理错误时会出现一个警告命令脚本能运行,能多次包含文件代码,被调用文件的变量在电泳文件中也可以用。
例子:vas.php和v.php
<?php <?php
$color='green' echo " a $color $fruit"
$fruit='apple' include 'vas.php'
echo " a $color $fruit"
?> ?>
从v.php的输出结果可以知道第一个只输出a,第二个输出a green apple.这是由于vas.php被包含进来了,其变量也被包含进来了。
目标服务器将目标文件作为php代码解释,则可以用适用于http get 的url请求字符串来向被包括的文件传递变量。
用http进行包含时,实际包含进来的是被包含文件运行的结果因此彼此的变量互不相识。
include可以用return,有return时只等于返回值,没有return时值为1(运行成功)或0(失败),但include只是一个特殊的语言结构,并不是一个函数。
二.php函数定义
<?php==
function 函数名(参数,参数)
{
函数体
}
?>
php支持按值传递参数和按引用传递参数,前者为默认方式。要让参数是通过引用传递的时候在参数前面要加上&。
三.php中的一些语法
1.instanceof用来判断该类是否为某个接口或者抽象类的实例
2.使用_call可以实现方法的重载_call(string name,array arguments)
name为要重载的函数名,argument为调用重载函数时传入的参数所组成的数组
3._toString()将类传回的值转换为一个字符串,当尝试打印实现该方法的类的实例时_toString方法被自动调用。
4._construct()方法是在该方法中将变量重新进行定义为调用该方法时传入的参数值。
5.在将一个类变量赋值给另一个变量时,执行的是引用赋值,赋值之后两个变量将指向同一个对象,即引用类的同一个实例,对任何一个变量的值改变都将引起另一个变量的改变。
克隆的作用是在原对象的基础上创建一个与原对象具有相同属性的实例。使用_clone方法以执行特定的克隆代码,该方法在使用关键字对类实例进行克隆的时候会被自动调用。
6.php中的对象比较用==和!=时,如果两个类变量属于同一个类的实例并且具有相同的属性值,他们相等否则不想等。===和!==必须要满足是同一个类的同一个实例
7.异常处理:
try{
//可能抛出异常的代码
throw new Exception();
}
catch (类型指示 $e){
//处理异常的代码
}
8.内置的exception($message=null,$code=?)类有如下的一些内置方法
getCode() 取出传入构造函数的代码
getMessage() 取出传入构造函数的信息
getFile() 取得产生异常的代码文件的文件的完整信息
getLine() 取得代码文件中产生异常的代码行号
getTrace() 取得包含了产生异常的代码回退路劲的数组,回退路径中提示了在发生异常是所执行的函数
getTraceAsString() 取得包含了产生异常的代码回退路径的格式化字符串
9.自己定义的异常需要继承exception类
函数
mysql_real_escape_string()被视为mysql_escape_string()和addslashes()的替代品。会转译字符串中特殊字符,例如’会被转译成\’,但该函数不会转义%和_
转义 SQL 语句中使用的字符串中的特殊字符,并考虑到连接的当前字符集。
利用宽字节注入可以绕过这一过滤。
宽字节注入利用的是mysql中的一个特性:mysql在使用gbk编码的时候会将两个字符认为是汉字(前一个字符的ascii码要大于128)。当使用
mysql_real_escape_string函数后’变成\’,构造注入%df’就可以绕过。
在正则表达式中m参数表示要进行多行匹配