avatar

cindahy

A text-focused Halo theme

  • 首页
  • 文章分类
  • 项目
  • 关于
Home PHP学习笔记②
文章

PHP学习笔记②

Posted 2024-07-14 Updated 2025-08- 19
By Administrator
38~49 min read

PHP学习笔记②

  • 条件语句

  • 循环语句

  • 数组

    • 数值数组

    • 关联数组

  • 数组排序

  • PHP超级全局变量

    • $GLOBALS

    • $_SERVER

    • $_REQUEST

    • $_POST

    • $_GET

  • 函数

    • 变量函数

  • 魔术常量

条件语句

if else 语句

if(条件)
{
	代码;
}
else if()
{
	代码;
}
else
{
	代码;
}

switch语句

switch(){
	case value1;
		//代码块
		break;
	case value2;
		//代码块
		break;
	default:
		//如果没有匹配的值
}

循环语句

  • while - 只要指定的条件成立,则循环执行代码块

  • do…while - 首先执行一次代码块,然后在指定的条件成立时重复这个循环

  • for - 循环执行代码块指定的次数

  • foreach - 根据数组中每个元素来循环代码块

  • while循环

while (条件)
{
    要执行的代码;
}
---
do
{
    要执行的代码;
}
while (条件);

for循环

for (初始值; 条件; 增量)
{
    要执行的代码;
}
---
//foreach 循环用于遍历数组。
foreach ($array as $value)
{
    要执行代码;
}
foreach ($array as $key => $value)
{
    要执行代码;
}
//键和值都对应地逐一往后移

数组

在 PHP 中,有三种类型的数组:

  • 数值数组 - 带有数字 ID 键的数组

  • 关联数组 - 带有指定的键的数组,每个键关联一个值

  • 多维数组 - 包含一个或多个数组的数组

数值数组

自动分配 ID 键(ID 键总是从 0 开始):

<?php
$cars=array("Volvo","BMW","Toyota");
echo "I like " . $cars[0] . ", " . $cars[1] . " and " . $cars[2] . ".";
?>

遍历数值数组

<?php
$cars=array("Volvo","BMW","Toyota");
$arrlength=count($cars);//cout返回数组长度
 
for($x=0;$x<$arrlength;$x++)
{
    echo $cars[$x];
    echo "<br>";
}
?>

关联数组

有两种创建关联数组的方法

$age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");

or

$age['Peter']="35";
$age['Ben']="37";
$age['Joe']="43";

使用指定的键

<?php
$age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");
echo "Peter is " . $age['Peter'] . " years old.";
?>

遍历关联数组

<?php
$age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");
 
foreach($age as $x=>$x_value)
{
    echo "Key=" . $x . ", Value=" . $x_value;
    echo "<br>";
}
?>

数组排序

php数组排序函数

  • sort() - 对数组进行升序排列

  • rsort() - 对数组进行降序排列

  • asort() - 根据关联数组的值,对数组进行升序排列

  • ksort() - 根据关联数组的键,对数组进行升序排列

  • arsort() - 根据关联数组的值,对数组进行降序排列

  • krsort() - 根据关联数组的键,对数组进行降序排列
    ()里面是变量名如$cars

PHP超级全局变量

PHP中预定义了几个超级全局变量,这意味着它们在一个脚本的全部作用域中都可用。 不需要特别说明,就可以在函数及类中使用。
常用PHP 超级全局变量:

  • $GLOBALS

  • $_SERVER

  • $_REQUEST

  • $_POST

  • $_GET

  • $_FILES

  • $_ENV

  • $_COOKIE

  • $_SESSION

$GLOBALS

$GLOBALS 是一个包含了全部变量的全局组合数组。变量的名字就是数组的键。

<?php 
$x = 75; 
$y = 25;
 
function addition() 
{ 
    $GLOBALS['z'] = $GLOBALS['x'] + $GLOBALS['y']; 
}
 
addition(); 
echo $z; 
?>

$_SERVER

$_SERVER 是一个包含了诸如头信息(header)、路径(path)、以及脚本位置(script locations)等等信息的数组。

元素/代码

描述

$_SERVER[‘PHP_SELF’]

当前执行脚本的文件名,与 document root 有关。例如,在地址为 http://example.com/test.php/foo.bar 的脚本中使用$_SERVER[‘PHP_SELF’] 将得到 /test.php/foo.bar。FILE 常量包含当前(例如包含)文件的完整路径和文件名。 从 PHP 4.3.0 版本开始,如果 PHP 以命令行模式运行,这个变量将包含脚本名。之前的版本该变量不可用。

$_SERVER[‘GATEWAY_INTERFACE’]

服务器使用的 CGI 规范的版本;例如,“CGI/1.1”。

$_SERVER[‘SERVER_ADDR’]

当前运行脚本所在的服务器的 IP 地址。

$_SERVER[‘SERVER_NAME’]

当前运行脚本所在的服务器的主机名。如果脚本运行于虚拟主机中,该名称是由那个虚拟主机所设置的值决定。(如: www.runoob.com)

$_SERVER[‘SERVER_SOFTWARE’]

服务器标识字符串,在响应请求时的头信息中给出。 (如:Apache/2.2.24)

$_SERVER[‘SERVER_PROTOCOL’]

请求页面时通信协议的名称和版本。例如,“HTTP/1.0”。

$_SERVER[‘REQUEST_METHOD’]

访问页面使用的请求方法;例如,“GET”, “HEAD”,“POST”,“PUT”。

$_SERVER[‘REQUEST_TIME’]

请求开始时的时间戳。从 PHP 5.1.0 起可用。 (如:1377687496)

$_SERVER[‘QUERY_STRING’]

query string(查询字符串),如果有的话,通过它进行页面访问。

$_SERVER[‘HTTP_ACCEPT’]

当前请求头中 Accept: 项的内容,如果存在的话。

$_SERVER[‘HTTP_ACCEPT_CHARSET’]

当前请求头中 Accept-Charset: 项的内容,如果存在的话。例如:“iso-8859-1,*,utf-8”。

$_SERVER[‘HTTP_HOST’]

当前请求头中 Host: 项的内容,如果存在的话。

$_SERVER[‘HTTP_REFERER’]

引导用户代理到当前页的前一页的地址(如果存在)。由 user agent 设置决定。并不是所有的用户代理都会设置该项,有的还提供了修改 HTTP_REFERER 的功能。简言之,该值并不可信。)

$_SERVER[‘HTTPS’]

如果脚本是通过 HTTPS 协议被访问,则被设为一个非空的值。

$_SERVER[‘REMOTE_ADDR’]

浏览当前页面的用户的 IP 地址。

$_SERVER[‘REMOTE_HOST’]

浏览当前页面的用户的主机名。DNS 反向解析不依赖于用户的 REMOTE_ADDR。

$_SERVER[‘REMOTE_PORT’]

用户机器上连接到 Web 服务器所使用的端口号。

$_SERVER[‘SCRIPT_FILENAME’]

当前执行脚本的绝对路径。

$_SERVER[‘SERVER_ADMIN’]

该值指明了 Apache 服务器配置文件中的 SERVER_ADMIN 参数。如果脚本运行在一个虚拟主机上,则该值是那个虚拟主机的值。(如:someone@runoob.com)

$_SERVER[‘SERVER_PORT’]

Web 服务器使用的端口。默认值为 “80”。如果使用 SSL 安全连接,则这个值为用户设置的 HTTP 端口。

$_SERVER[‘SERVER_SIGNATURE’]

包含了服务器版本和虚拟主机名的字符串。

$_SERVER[‘PATH_TRANSLATED’]

当前脚本所在文件系统(非文档根目录)的基本路径。这是在服务器进行虚拟到真实路径的映像后的结果。

$_SERVER[‘SCRIPT_NAME’]

包含当前脚本的路径。这在页面需要指向自己时非常有用。FILE 常量包含当前脚本(例如包含文件)的完整路径和文件名。

$_SERVER[‘SCRIPT_URI’]

URI 用来指定要访问的页面。例如 “/index.html”。

$_REQUEST

PHP $_REQUEST 用于收集HTML表单提交的数据。
以下实例显示了一个输入字段(input)及提交按钮(submit)的表单(form)。 当用户通过点击 “Submit” 按钮提交表单数据时, 表单数据将发送至标签中 action 属性中指定的脚本文件。 在这个实例中,我们指定文件来处理表单数据。

<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>

在这里插入图片描述
输入1提交
在这里插入图片描述

$_POST

PHP $_POST 被广泛应用于收集表单数据,在HTML form标签的指定该属性:method=“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>

$_GET

PHP $ GET 同样被广泛应用于收集表单数据,在HTML form标签的指定该属性:method=“get”。
$
GET 也可以收集URL中发送的数据。

//超链接HTML页面
<html>
<body>

<a href="test_get.php?subject=PHP&web=runoob.com">Test $GET</a>

</body>
</html>

当用户点击链接 “Test $GET”, 参数 “subject” 和 “web” 将发送至"test_get.php",你可以在 “test_get.php” 文件中使用 $_GET 变量来获取这些数据。
以下实例显示了 “test_get.php” 文件的代码:

<html>
<body>
 
<?php 
echo "Study " . $_GET['subject'] . " @ " . $_GET['web'];
?>
 
</body>
</html>

运行结果如图
在这里插入图片描述

函数

创建函数

<?php
function writeName($fname)
{
    echo $fname . " Refsnes.<br>";
}
 
echo "My name is ";
writeName("Kai Jim");
?>

函数返回值

<?php
function add($x,$y)
{
    $total=$x+$y;
    return $total;
}
 
echo "1 + 16 = " . add(1,16);
?>

变量函数

变量函数是指在PHP中,将一个变量作为函数名来调用的函数,相当于这个变量为函数类型,可以指向任何一个函数。
可以用变量函数的语法来调用一个对象的方法。

<?php
class Foo
{
    function Variable()
    {
        $name = 'Bar';
        $this->$name(); // 调用 Bar() 方法
    }

    function Bar()
    {
        echo "This is Bar";
    }
}

$foo = new Foo();
$funcname = "Variable";
$foo->$funcname();  // 调用 $foo->Variable()

?>

魔术常量

PHP 向它运行的任何脚本提供了大量的预定义常量,这些特殊的常量不区分大小写。
__LINE__
文件中的当前行号

<?php
echo '这是第 " '  . __LINE__ . ' " 行';
?>
//这是第 “ 2 ” 行

__FILE__
文件的完整路径和文件名,如果用在被包含文件中,则返回被包含的文件名。

<?php
echo '该文件位于 " '  . __FILE__ . ' " ';
?>
//该文件位于 “ E:\wamp\www\test\index.php ”

__DIR__
文件所在的目录。如果用在被包括文件中,则返回被包括的文件所在的目录。

<?php
echo '该文件位于 " '  . __DIR__ . ' " ';
?>
//该文件位于 “ E:\wamp\www\test ”

__FUNCTION__
返回该函数被定义时的名字(区分大小写)。

<?php
function test() {
    echo  '函数名为:' . __FUNCTION__ ;
}
test();
?>
//函数名为:test

__CLASS__
返回该类被定义时的名字(区分大小写)。

<?php
class test {
    function _print() {
        echo '类名为:'  . __CLASS__ . "<br>";
        echo  '函数名为:' . __FUNCTION__ ;
    }
}
$t = new test();
$t->_print();
?>

__TRAIT__
Trait 的名字(PHP 5.4.0 新加)。自 PHP 5.4.0 起,PHP 实现了代码复用的一个方法,称为 traits。
Trait 名包括其被声明的作用区域(例如 Foo\Bar)。
从基类继承的成员被插入的 SayWorld Trait 中的 MyHelloWorld 方法所覆盖。其行为 MyHelloWorld 类中定义的方法一致。优先顺序是当前类中的方法会覆盖 trait 方法,而 trait 方法又覆盖了基类中的方法。

<?php
class Base {
    public function sayHello() {
        echo 'Hello ';
    }
}
 
trait SayWorld {
    public function sayHello() {
        parent::sayHello();
        echo 'World!';
    }
}
 
class MyHelloWorld extends Base {
    use SayWorld;
}
 
$o = new MyHelloWorld();
$o->sayHello();
?>
//Hello World!

__METHOD__
类的方法名。

<?php
function test() {
    echo  '函数名为:' . __METHOD__ ;
}
test();
?>
//函数名为:test

__NAMESPACE__
当前命名空间的名称(区分大小写)。

<?php
namespace MyProject;
 
echo '命名空间为:"', __NAMESPACE__, '"';
// 输出 "MyProject"
?>
php
php
License:  CC BY 4.0
Share

Further Reading

Jul 17, 2024

PHP学习笔记③

PHP学习笔记③ 命名空间 定义命名空间

Jul 14, 2024

PHP学习笔记②

PHP学习笔记② 条件语句 循环语句

Jul 10, 2024

PHP学习笔记①

PHP学习笔记 php语法 php变量

OLDER

PHP学习笔记①

NEWER

PHP学习笔记③

Recently Updated

  • 常见安全产品整理(防火墙,WAF,EDR)
  • ELK从入门到实践
  • bp+mumu模拟器app抓包
  • xray漏扫工具
  • Java反序列化-RMI的几种攻击方式

Trending Tags

安全运营 文件上传 php反序列化 xss csrf ssrf xxe sql php 白帽子讲web安全

Contents

©2025 cindahy. Some rights reserved.

Using the Halo theme Chirpy