函数
PHP有超过1000个内建的函数。。
自定义函数的话,只需要function定义即
function echoFunc(){
echo "this is a function";
}
echoFunc();
首先定义这个函数,echoFunc,然后调用之~函数名对大小写不敏感
函数参数
可以向函数里传递参数,参数前面需要加一个$符号代表
function echoFunc($name){
echo "hi,I am $name";
}
echoFunc("John</br>");
echoFunc("Lucy</br>");
echoFunc("Mina</br>");
函数参数可以使用默认值,即定义的时候:
function echo Func($name="hou"){}
这样,在调用函数时,假如没有传参,则会默认为hou,返回的话还是用return
数组
PHP中,数组有三种类型:
1索引数组 带有数组索引的数组
2关联数组 带有指定键的数组 (像不像map跟字典?)
3多维数组 有嵌套的数组
索引数组
索引数组其实就是我们平常其他语言中使用的,下标为0 1 2 3 4
函数count()用于计算数组的长度。
<?php
$cars=array("Volvo","BMW","SAAB");
$arrlength=count($cars);
for($x=0;$x<$arrlength;$x++) {
echo $cars[$x];
echo "<br>";
}
?>
上面代码遍历了数组,并且输出
关联数组
$age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");
确实像字典~
遍历的话可以使用foreach
<?php
$age=array("Bill"=>"35","Steve"=>"37","Peter"=>"43");
foreach($age as $x=>$x_value) {
echo "Key=" . $x . ", Value=" . $x_value;
echo "<br>";
}
?>
数组排序
sort() - 以升序对数组排序
rsort() - 以降序对数组排序
asort() - 根据值,以升序对关联数组进行排序
ksort() - 根据键,以升序对关联数组进行排序
arsort() - 根据值,以降序对关联数组进行排序
krsort() - 根据键,以降序对关联数组进行排序
超全局变量
PHP中很多变量都是超全局的,在脚本所在的全部作用域都可以直接使用,而不用global:
$GLOBALS
$_SERVER
$_REQUEST
$_POST
$_GET
$_FILES
$_ENV
$_COOKIE
$_SESSION
这几个变量都是超全局变量。
$GLOBALS
在任何地方访问 全局变量
$x = 1;
function testFunc(){
echo $GLOBALS['x'];
$y = 3;
}
testFunc();
在函数中直接访问了$x变量
$_SERVER
保存报头,脚本位置,路径的信息。
<?php
echo $_SERVER['PHP_SELF'];
echo "<br>";
echo $_SERVER['SERVER_NAME'];
echo "<br>";
echo $_SERVER['HTTP_HOST'];
echo "<br>";
echo $_SERVER['HTTP_REFERER'];
echo "<br>";
echo $_SERVER['HTTP_USER_AGENT'];
echo "<br>";
echo $_SERVER['SCRIPT_NAME'];
?>
输出:
/php/index.php
localhost
localhost
Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:43.0) Gecko/20100101 Firefox/43.0
/php/index.php
将所有信息都打印出来了。。
下面是可以访问的信息:
$_SERVER['PHP_SELF'] 返回当前执行脚本的文件名。
$_SERVER['GATEWAY_INTERFACE'] 返回服务器使用的 CGI 规范的版本。
$_SERVER['SERVER_ADDR'] 返回当前运行脚本所在的服务器的 IP 地址。
$_SERVER['SERVER_NAME'] 返回当前运行脚本所在的服务器的主机名(比如 www.w3school.com.cn)。
$_SERVER['SERVER_SOFTWARE'] 返回服务器标识字符串(比如 Apache/2.2.24)。
$_SERVER['SERVER_PROTOCOL'] 返回请求页面时通信协议的名称和版本(例如,“HTTP/1.0”)。
$_SERVER['REQUEST_METHOD'] 返回访问页面使用的请求方法(例如 POST)。
$_SERVER['REQUEST_TIME'] 返回请求开始时的时间戳(例如 1577687494)。
$_SERVER['QUERY_STRING'] 返回查询字符串,如果是通过查询字符串访问此页面。
$_SERVER['HTTP_ACCEPT'] 返回来自当前请求的请求头。
$_SERVER['HTTP_ACCEPT_CHARSET'] 返回来自当前请求的 Accept_Charset 头( 例如 utf-8,ISO-8859-1)
$_SERVER['HTTP_HOST'] 返回来自当前请求的 Host 头。
$_SERVER['HTTP_REFERER'] 返回当前页面的完整 URL(不可靠,因为不是所有用户代理都支持)。
$_SERVER['HTTPS'] 是否通过安全 HTTP 协议查询脚本。
$_SERVER['REMOTE_ADDR'] 返回浏览当前页面的用户的 IP 地址。
$_SERVER['REMOTE_HOST'] 返回浏览当前页面的用户的主机名。
$_SERVER['REMOTE_PORT'] 返回用户机器上连接到 Web 服务器所使用的端口号。
$_SERVER['SCRIPT_FILENAME'] 返回当前执行脚本的绝对路径。
$_SERVER['SERVER_ADMIN'] 该值指明了 Apache 服务器配置文件中的 SERVER_ADMIN 参数。
$_SERVER['SERVER_PORT'] Web 服务器使用的端口。默认值为 “80”。
$_SERVER['SERVER_SIGNATURE'] 返回服务器版本和虚拟主机名。
$_SERVER['PATH_TRANSLATED'] 当前脚本所在文件系统(非文档根目录)的基本路径。
$_SERVER['SCRIPT_NAME'] 返回当前脚本的路径。
$_SERVER['SCRIPT_URI'] 返回当前页面的 URI。
$_REQUEST
用于收集html表单提交的数据
<html>
<body>
<form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>">
Name: <input type="text" name="fname">
<input type="submit">
</form>
<?php
$name = $_REQUEST['fname'];
echo $name;
?>
</body>
</html>
我们可以通过访问_REQUEST获取到input中的数据
$_POST $_GET
$_POST
和 $_GET
也是用于获取html表单中提交的数据,和$_REQUEST
相似用法