函数和面向对象
1、在php中,默认传递给一个函数的变量在函数内部实际只是一个副本,如果需要传递引用,需要在函数定义时候加上&符号。
2、对php文件的include/require
函数include和require唯一不同在于如何处理无法读取的文件:两个include函数只会打印一个警告,并试图继续执行程序;而require会立即停止处理当前页面。
include---将被包含的文件内容直接复制到你的php文件里
include_once---用于避免很多嵌套脚本导致的php文件重复的问题,这会导致错误,而include是不检查脚本是否已经北包含的;用include_once可以避免这个问题。
这里四个函数都是用所在php文件的相对路径,而不是绝对路径。
3、面向对象编程
构造函数:5.0~可使用__constructor,不过还是兼容旧的同名函数为构造函数的情况。
new:新建一个类的实例,并将引用返回。
类内部变量:通过var声明,对类内部所有方法可见,
$this:总是指向当前执行的对象。
parent::method_from_parent:在子类中调用父类的方法
extends:继承
Override:在新类中重新定义一个函数可以重写超类中中的函数。
静态:静态意味着这个静态变量或方法是针对一个类的,而不是一个对象。只能通过 ”类名:: “ 引用
变量
变量范围
函数内定义的变量作用域仅限于函数内部
在函数内部定义的变量加上
global就编程了全局变量,函数内部的
static变量创建了一个针对函数的持久存储空间。
超越全局变量用于提供php脚本环境的信息,php 4.01开始,超越全局变量北定义成数组。不是定义成数组形式的老的超越全局变量,比如以“¥HTTP_*”开头的变量,依然存在,但是不建议使用。下面给出4.01后支持的数组:
变量数组名 | 内容 |
---|---|
$_GLOBALS |
包含所有本地脚本可以访问的全局变量。变量名被用来从数组中选择要北访问的部分 |
$_SERVER | 包含web服务环境信息 |
$_GET | 包含GET请求(表单提交)的信息。这些值在使用之前应该先检查 |
$_POST | 包含POST请求(另一个中表单提交)的信息。这些值在使用前应该先检查 |
$_COOKIES | 包含HTTP cookie的信息 |
$_FILES | 包含通过PSOT上传的文件的信息 |
$_ENV | 包含脚本环境的信息 |
$_REQUEST | 包含用户输入信息。这些值在使用之前应该先检查。应该使用更明确的$_GET和$_POST而不是$_REQUEST |
$_SESSION | 包含所有在一个会话里注册的变量 |
字符串
单引号双引号都可以用,不过只有在双引号里才能直接诶使用变量。
“fabcd‘fefg’jjjj” 双引号里直接使用单引号等一些特殊字符,而单引号里如果要用必须要反斜线\。
echo "<h2 class=\"sepcials\">Magit</h2>" 使用\转义
echo '<h2 class="sepcials">Magit</h2>' 无需使用\转义
常量
define(“HELLO”,"Hello world!");
echo HELLO; //output "Hello world!"
$constant_name = "HELLO";
echo constant($constant_name);
如果常量的名字保存在一个变量里,或者是一个函数的返回值,那么你需要使用啊哈念书constant来取得这个常量的值。
预定义常量
php提供了一些常量,它们像一些超越全局变量那样北预定义好了。
__FILE__ 返回当前执行的PHP文件的名字
__LINE__ 返回在这个文件内的行号