PHP学习笔记第四天

news2024/11/14 22:04:40

前言

作者简介:不知名白帽,网络安全学习者。

博客主页:不知名白帽的博客_CSDN博客-网络安全,CTF,内网渗透领域博主

网络安全交流社区:https://bbs.csdn.net/forums/angluoanquan

目录

PHP超级全局变量

PHP $_GLOBALS

PHP $_SERVER 

PHP $_REQUEST

PHP $_POST

PHP $_GET 

PHP While循环

while 循环

do while 循环

PHP for 循环

for 循环 

foreach 循环 

输出给定数组的值的循环

输出给定数组键与值的循环

PHP函数

创建PHP函数 

PHP函数-添加参数

PHP函数-返回值

PHP魔术常量

__LINE__

 __FILE__

 __DIR__

__FUNCTION__

__CLASS__ 

__TRAIT__

__METHOD__


PHP超级全局变量

PHP $_GLOBALS

<?php
/*
$GLOBALS 是PHP的一个超级全局变量组,在一个PHP脚本的全部作用域中都可以访问。
$GLOBALS 是一个包含了全部变量的全局组合数组。变量的名字就是数组的键。
*/
$x = 15;
$y = 35;
function add()
{
    $GLOBALS["z"] = $GLOBALS["x"] + $GLOBALS["y"];
}
add();
echo $z;
?>

PHP $_SERVER 

<?php
/*
$_SERVER 是一个包含了诸如头信息(header)、路径(path)、以及脚本位置(script locations)等等信息的数组。
这个数组中的项目由 Web 服务器创建。
*/
echo $_SERVER["PHP_SELF"];                  //  当前执行脚本的文件名
echo "<br>";
echo $_SERVER["GATEWAY_INTERFACE"];         //  服务器使用的CGI版本
echo "<br>";
echo $_SERVER["SERVER_ADDR"];               //  当前运行脚本所在服务器IP
echo "<br>";
echo $_SERVER["SERVER_NAME"];               //  运行脚本所在服务器主机名                
echo "<br>";
echo $_SERVER["SERVER_SOFTWARE"];           //  服务器标识字符串
echo "<br>";
echo $_SERVER["SERVER_PROTOCOL"];           //  请求页面时通信协议的名称和版本
echo "<br>";
echo $_SERVER["REQUEST_METHOD"];            //  访问页面使用的请求方法           
echo "<br>";
echo $_SERVER["REQUEST_TIME"];              //  请求开始时的时间戳           
echo "<br>";
echo $_SERVER["HTTP_ACCEPT"];               //  当前请求头accept项的内容       
echo "<br>";
echo $_SERVER["HTTP_HOST"];                 //  当前请求头中 Host: 项的内容
echo "<br>";
echo $_SERVER["REMOTE_ADDR"];               //  浏览当前页面的用户的 IP 地址
echo "<br>";
echo $_SERVER["REMOTE_PORT"];               //  用户机器上连接到 Web 服务器所使用的端口号
echo "<br>";
echo $_SERVER["SCRIPT_FILENAME"];           //  当前执行脚本的绝对路径
echo "<br>";
echo $_SERVER["SERVER_ADMIN"];              //  该值指明了 Apache 服务器配置文件中的 SERVER_ADMIN 参数
echo "<br>";
echo $_SERVER["SERVER_PORT"];               //  Web 服务器使用的端口
echo "<br>";
echo $_SERVER["SCRIPT_NAME"];               //  包含当前脚本的路径
echo "<br>";
?>

PHP $_REQUEST

关于html表单的一些知识:HTML 表单 (w3school.com.cn)

<form method="get" action="2.php">
Name: <input type="text" name="testname">
<input type="submit">
</form>

<?php 
$test = $_REQUEST['testname']; 
echo $test; 
?>

PHP $_POST

<form method="post" action="2.php">
Name: <input type="text" name="testname">
<input type="submit">
</form>

<?php 
$test = $_POST['testname']; 
echo $test; 
?>

PHP $_GET 

<a href="2.php?subject=PHP&web=STUDY">Test $GET</a>

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

PHP While循环

while 循环

while 循环将重复执行代码块,直到指定的条件不成立。

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

<?php
$test = 1;

while($test <= 5)       //只要test小于等于5,循环就会持续运行,循环每运行一次,test就会+1
{
echo "the number is " . $test . "<br>";
$test ++;       //后递增。先返回test,然后test+1
}
?>

do while 循环

do...while 语句会至少执行一次代码,然后检查条件,只要条件成立,就会重复进行循环。

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

<?php
$test = 1;

do      
{
$test ++;       //后递增。先返回test,然后test+1
echo "the number is " . $test . "<br>";
}
while($test <= 5)
?>

PHP for 循环

for 循环 

for 循环用于您预先知道脚本需要运行的次数的情况。

for (初始值; 条件; 增量)
{
    要执行的代码;
}

<?php
for($x=1;$x<=5;$x++)
{
echo "数字:" .$x ."<br>";
}
?>

foreach 循环 

foreach 循环用于遍历数组。

输出给定数组的值的循环

foreach ($array as $value)
{
    要执行代码;
}

<?php
$x = array("aaa","bbb","ccc");    //数组里面用都好,循环里面用分号。
foreach($x as $value)
{
    echo $value . "<br>" ;
}
?>

输出给定数组键与值的循环

foreach ($array as $key => $value)
{
    要执行代码;
}

<?php
$x = array(1=>"aaa",2=>"bbb",3=>"ccc");    //数组里面用都好,循环里面用分号。
foreach($x as $key => $value)
{
    echo "key为" . $key . "  " . "value为" .$value . "<br>" ;
}
?>

PHP函数

创建PHP函数 

<?php
function writeName()    /*
                            1.函数的名称应该提示出它的功能
                            2.函数名称以字母或下划线开头(不能以数字开头)
                         */
{
echo "user";
}
echo "my name is ";
writeName();
?>

PHP函数-添加参数

<?php
function writeName($fname,$punctuation)  /*
                            1.为了给函数添加更多的功能,我们可以添加参数,参数类似变量。
                            2.参数就在函数名称后面的一个括号内指定。
                            */
{
echo $fname . $punctuation . "user";
}
echo "my name is ";
writeName("aaa","-"); 
?>

PHP函数-返回值

<?php
function add($x,$y)
{
$test = $x + $y;
return $test;
}
echo "3+6=" . add(3,6);
?>

PHP魔术常量

__LINE__

显示文件中的当前行号。

<?php
echo "这里是第" . __LINE__ . "行";
?>

 __FILE__

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

<?php
echo "该文件位于" . __FILE__ ;
?>

 __DIR__

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

<?php
echo "该文件位于" . __DIR__ ;
?>

__FUNCTION__

函数名称(PHP 4.3.0 新加)。自 PHP 5 起本常量返回该函数被定义时的名字(区分大小写)。

 

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

__CLASS__ 

类的名称(PHP 4.3.0 新加)。自 PHP 5 起本常量返回该类被定义时的名字(区分大小写)。

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

<?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();    //  输出Hello
$o->sayHello();             //  输出World!
?>

__METHOD__

类的方法名(PHP 5.0.0 新加)。返回该方法被定义时的名字(区分大小写)。

<?php
function user() {
    echo  '函数的名称:' . __METHOD__ ;
}
user();
?>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/672398.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

在 Navicat Premium 中管理 MySQL 用户 | 第 3 部分:配置用户权限

第 3 部分&#xff1a;配置用户权限 在本系列中&#xff0c;我们一直在探索如何使用 Navicat 的旗舰产品 Navicat Premium 执行常见的用户管理任务。在 第 1 部分 中&#xff0c;我们学习了如何使用 Navicat Premium 用户管理工具保护 MySQL root 帐号。而 第 2 部分 重点介绍…

csrf入门

一.CSRF是什么&#xff1f; CSRF&#xff08;Cross-site request forgery&#xff09;&#xff0c;中文名称&#xff1a;跨站请求伪造&#xff0c;也被称为&#xff1a;one click attack/session riding&#xff0c;缩写为&#xff1a;CSRF/XSRF。 二.CSRF可以做什么&#xff…

uniapp webview H5跳转微信小程序

第一步&#xff1a;manifest.json 第二步&#xff1a;index.html <!DOCTYPE html> <html lang"zh-CN"><head><meta charset"utf-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><title>…

Unity编辑器扩展-第六集-创建窗口/批量填图

第五集链接&#xff1a;Unity编辑器扩展-第五集-撤回操作/禁止操作/加快捷键_菌菌巧乐兹的博客-CSDN博客 一、本节目标效果展示 1.创建窗口 2.图片批量赋值到物体上 二、创建窗口 这个功能其实也很好理解&#xff0c;我们之前学了点击选择&#xff0c;但我们难免会遇见需要…

python学习——Matplotlib数据可视化基础

目录 Matplotlib数据可视化基础1.基础语法与折线图rc参数调整中文显示的问题 2.散点图3.条形图案例一&#xff1a;横向条形图案例二&#xff1a;多个条形图案例三&#xff1a;最后一个刻度 4.直方图实例1 频率分布直方图和频数分布直方图 5.饼图6.箱线图综合案例&#xff1a;直…

Centos7 上的sqlite3安装及升级

一.wget升级 yum install -y wget 二.sqlite3安装 sudo yum install sqlite-devel 查看sqlite3的版本 sqlite3 -version 三.sqlite3升级 下载源码 wget https://www.sqlite.org/2023/sqlite-autoconf-3420000.tar.gz 版本可去官网选择 SQLite Download Page 解压、编译 tar z…

类的真正形态

问题 经过不停地改进&#xff0c;结构体 struct 变得越来越不像它在 C 语言中的样子了&#xff01;&#xff01;&#xff01; struct 在 C 语言中已经有了自己的含义&#xff0c;必须继续兼容 在 C 中提供了新的关键字 class 用于类定义 class 和 struct 的用法是完全相同的…

微信接口测试拓展

背景 最近收到一个SRC提交的漏洞&#xff0c;泄露了微信小程序的appkey和appSecret&#xff1b;于是乎为了搞清楚影响&#xff0c;漏洞风险和利用方式&#xff0c;便有了这篇文章&#xff1b; 在了解漏洞风险之前先来了解一下微信的几个平台&#xff1b; 微信公众号平台 微…

进行压力测试的目的是什么?重要性体现在哪?

进行压力测试的目的是什么&#xff1f;重要性体现在哪&#xff1f;压力测试是通过施加一定压力或负荷于测试对象&#xff0c;以评估其结构、性能和可靠性的过程。它可以是静态压力测试&#xff0c;即施加一定压力并持续一段时间&#xff0c;也可以是动态压力测试&#xff0c;即…

十四.EtherCAT开发之ST MCU STM32F407ZGt6+ AX58100的开发FOE应用

十四.EtherCAT开发之ST MCU STM32F407ZGt6 AX58100的开发FOE应用 STM32F407ZGt6与AX58100是 SPI连接&#xff0c;工作在SPI模式。 FoE(File Access over EtherCAT)可实现EtherCAT节点之间的文件传输。 14.1 SSC TOOL配置 boot mode与FOE支持 FOE 说是要在状态机的boot mod…

本地同城美食小程序软件开发

以下是同城美食小程序软件的一些常见需求&#xff1a; 餐厅列表和搜索&#xff1a;提供详细的餐厅信息&#xff0c;包括店铺地址、联系方式、特色菜品等&#xff0c;并让用户可以通过关键字或地理位置搜索并筛选餐厅。 菜单浏览&#xff1a;展示每个餐厅的菜单&#xf…

控制您的数据:Web3私有链为数据主权带来的突破性变革

在数字化时代&#xff0c;数据已经成为企业和个人最宝贵的资产之一。然而&#xff0c;随着大规模数据泄露和滥用事件的频发&#xff0c;数据主权和隐私保护成为了备受关注的问题。在这个背景下&#xff0c;Web3私有链的出现为数据主权带来了一场突破性的变革。 首先&#xff0c…

基于51单片机的数字电子钟

目录 摘 要 1.课程设计任务 1.1课程设计题目 1.2设计的要求 2.设计总体方案 2.1初步设计方案 2.2芯片的选型 2.2.1时钟芯片的选择 2.2.2温度传感器的选择 2.2.3显示电路的选择 2.2.4输入按键的选择 2.2.5控制电路芯片的选择 2.3总体方案 3.单元模块设计 3.1显…

端午佳节|展望现代科技下的传统佳节

目录 引言 一、利用代码传承端午节文化 1. 编写端午节的相关小程序或网页应用 2. 开发端午节主题的应用程序或游戏 二、科技让传统更便捷 1. 线上购物与送礼 2. 线上分享与互动 结语&#xff1a; 引言 加入CSDN已经是6个端午的年头了。今年端午正好是第6年&#xff0c…

Ubuntu Nvidia Failed to initialize NVML: Driver/library version mismatch 解决方案

一、nvidia显卡驱动丢失 现象&#xff1a; 执行nvidia-smi报错 原因&#xff1a; NVIDIA 内核版本与系统驱动版本不适配&#xff0c;Ubuntu自动将nvidia的驱动从525.105更新到了525.116 如下图 注&#xff1a;当使用 apt-get 命令时&#xff0c;默认会将所有需要更新的包都下…

具身智能与强化学习前沿进展 | 2023智源大会精彩回顾

导读 今年是具身智能值得纪念的一年&#xff0c;从谷歌发布具身多模态大模型&#xff0c;展示了智能体与环境智能交互的能力&#xff1b;再到特斯拉的人形机器人引发人们对具身智能和未来通用机器人的想象。那么&#xff0c;具身智能究竟“走”到哪里了&#xff1f; 在2023北京…

Three.js创建场景学习

Three.js 入门示例_bcbobo21cn的博客-CSDN博客 这里做了Three.js入门示例&#xff0c;显示一个球体&#xff1b; 下面单独看一下场景Scene&#xff1b; 先只有2句代码&#xff0c; const scene new THREE.Scene(); var x 5; 然后进入前端调试&#xff1b;中断在 var x 5 …

Android系统安全 — 6.1 WiFi安卓架构

1. Android Wi-Fi架构介绍 Android WiFi系统引入了wpa_supplicant&#xff0c;它的整个WiFi系统以wpa_supplicant为核心来定义上层用户接口和下层驱动接口。整个WiFi系统架构如下图所示&#xff1a; 1.1 WifiService 由SystemServer启动的时候生成的ConnecttivityService创…

加速“虚拟人+X”,魔珐科技撬动AIGC的杠杆

ChatGPT元宇宙虚拟人&#xff0c;将开创怎样的未来&#xff1f; 2022年11月30日&#xff0c;OpenAI凭借七年研发积累发布了全新聊天机器人模型ChatGPT&#xff0c;掀起新的人工智能革命。 2023年6月6日&#xff0c;苹果带着研发七年之久的MR头显产品Vision Pro亮相&#xff0…