PHP学习笔记(一)
知识来源:PHP与MySQL程序设计(第四版)图灵教育系列图书
3.1.1 默认语法
默认的界定语法以<?php 开头,以 ?> 结束,如下:
<?php
echo "hello word ! " ;
?>
3.2 代码注释
<?php
# xxxxxxx
// xxxxxxxx 两种都可以
?>
3.3 向浏览器输出数据
<?
print("hello word !!");
//或者
echo "hello word !!";
?>
3.4 PHP支持的数据类型
3.5 标识符
标识符是变量,函数和其他各种用户定义对象的通用名称。必须由字母或下划线开头。
3.6 变量
3.6.1 变量声明
变量总是以美元$符号开头,变量名遵循标识符的命名规则。
注意!! 变量名区分大小写!!!
3.6.2 变量作用域
*局部变量
*函数参数
*全局变量
*静态变量
1.局部变量 : 函数中声明的变量叫做局部变量
2.函数参数 : 当退出函数的时候,也就是函数结束后,参数值就会被撤销
3. 全局变量 : 与局部变量相反,全局变量可以在程序的任何地方访问,声明全局变量,只需要在变量前面加上 global 即可
4.静态变量 : 直接在变量前面加上 static 即可,与函数参数的变量不同,静态变量在函数退出时不会丢失值
3.6.3 PHP的超级全局变量 (重要!!!!)
PHP提供了许多很有用的预定义变量,可以在执行脚本的任何位置访问,用于提供大量与环境相关的信息。
PHP中预定义了几个超级全局变量(superglobals) ,这意味着它们在一个脚本的全部作用域中都可用。 你不需要特别说明,就可以在函数及类中使用。
$GLOBALS
$_SERVER
$_REQUEST
$_POST
$_GET
$_FILES
$_ENV
$_COOKIE
$_SESSION
PHP $GLOBALS
$GLOBALS 是PHP的一个超级全局变量组,在一个PHP脚本的全部作用域中都可以访问。
$GLOBALS 是一个包含了全部变量的全局组合数组。变量的名字就是数组的键。
以下实例介绍了如何使用超级全局变量 $GLOBALS:
实例
<?php
$x = 75;
$y = 25;
function addition()
{
$GLOBALS['z'] = $GLOBALS['x'] + $GLOBALS['y'];
}
addition();
echo $z;
?>
以上实例中 z 是一个$GLOBALS数组中的超级全局变量,该变量同样可以在函数外访问。
PHP $_SERVER
$_SERVER 是一个包含了诸如头信息(header)、路径(path)、以及脚本位置(script locations)等等信息的数组。这个数组中的项目由 Web 服务器创建。不能保证每个服务器都提供全部项目;服务器可能会忽略一些,或者提供一些没有在这里列举出来的项目。
以下实例中展示了如何使用$_SERVER中的元素:
实例
<?php
echo $_SERVER['PHP_SELF'];
echo "<br>";
echo $_SERVER['SERVER_NAME'];
echo "<br>";
echo $_SERVER['HTTP_HOST']; //客户的ip
echo "<br>";
echo $_SERVER['HTTP_REFERER']; //导引用户到达当前位置的url
echo "<br>";
echo $_SERVER['HTTP_USER_AGENT'];
echo "<br>";
echo $_SERVER['SCRIPT_NAME'];
?>
需要注意的几点:
$_GET 超级全局变量包含使用 GET 方法传递的参数的有关信息。需要注意的是,默认情况下,要访问通过 GET 方法传递的变量,$_GET是接受的唯一途径,不能用其他的变量来接受!!!
与 $_GET 一样,在默认情况下, $_POST 是接受post变量的唯一途径!!
实例
<html>
<body>
<form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>">
Name: <input type="text" name="fname">
<input type="submit">
</form>
<?php
$name = $_POST['fname'];
echo $name;
?>
</body>
</html>
4. 获取存储在cookie 中的信息
$_COOKIE 全局变量存储了通过http cookie 传递到脚本的信息。这些cookie一般是由以前执行的PHP脚本通过PHP函数 setcookie() 设置的。例如,假设使用 setcookie () 存储了一个名为 example ,值为 123456 的cookie ,以后就可以通过调用 $_COOKIE["example"] 来获得这个值。
5.用POST方法获取关于上传文件的信息
$_FILES 超级全局变量包含通过POST方法向服务器上传的数据的有关信息。
$GLOBALS超级全局变量数组可以看作是超级变量的集合,包含全局作用域内的所有变量。
$_SESSION 超级全局变量包含与所有会话变量有关的信息 。
3.10.3 文件包含知识点
include() 包含一个文件与复制该文件的数据到该语句所在的位置具有相同的结果。
与 print 和echo 类似 , include 在使用的时候可以不加括号,include " \ect\password ” ;
include_once () 函数的作用和include 相同,确保只包含文件一次
require () 基本上和include 一样,区别就是无论require() 的位置如何,指定文件都将包含到出现require()的脚本中。例如,即使require() 放在if条件为假的情况下,它依然会包含进来。include就相反,只有if条件为真才会真正包含!!
还有一个区别就是:require() 出错时,脚本会停止运行,而在使用include的情况下,脚本将继续执行。
require_once () 同理,也是确保只包含文件一次
5.2 创建数组
可以直接创建:
$state[0]="aaa";
$state[1]="bbb";
$state[2]="ccc";
$state[3]="ddd";
也可以使用array()函数来创建数组
$state = arrray(
"china" => "beijing" ,
"us" => "nuvyue" ,
);
5.2.4 测试数组
is_array() 函数可以用来测试变量是不是数组,如果是就返回TRUE,否则返回FALSE
5.3 输出数组
实际上用print_r 和foreach() 函数比较多
1、print_r()
利用 print_r() 函数可以打印输出整个数组内容及结构,按照一定格式显示键和元素。注意 print_r() 函数不仅是只用于打印,实际它是用于打印关于变量的易于理解的信息。
例子:
<?php
$arr_age
=
array
(18, 20, 25);
print_r(
$arr_age
);
?>
结果:
Array ( [0] => 18 [1] => 20 [2] => 25 )
2、var_dump()
同 print_r() 函数一样,var_dump() 函数也可以用于打印数组的数据及结构。不过 var_dump() 函数功能比 print_r() 更强大,可以同时打印多个变量且给出变量的类型信息。
例子:
<?php
$arr_age
=
array
(18, 20, 25);
var_dump(
$arr_age
);
?>
结果:
|
print_r() 和 var_dump() 函数一般是用于调试程序使用,更多情况是使用 echo 来输出具体的数组单元值。
5.5 定位数组元素 (搜索数组内容,搜索数组键或者搜索数组值)
in_array () 用于搜索数组内一个特定的值
array_key_exists () 用于搜索数组内一个特定的键
5.2.2 获取数组键
array_keys () 函数返回一个数组,其中包含所搜索数组中找到的所有的键
array_values () 函数返回一个数组中所有的值
5.7 确定数组的大小和唯一性
count() 函数返回数组中值的总数
sizeof () 函数是 count () 的别名。他们的功能是一样的
5.8.3 数组排序
凡是 xxsort() 函数,基本上都是对数组排序的函数
5.9 合并,拆分,接合和分解数组