25分钟了解php?php基础

这篇具有很好参考价值的文章主要介绍了25分钟了解php?php基础。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

🏆今日学习目标:
🍀学习php基础
✅创作者:贤鱼
⏰预计时间:35分钟
🎉个人主页:贤鱼的个人主页
🔥专栏系列:网络安全
🍁贤鱼的个人社区,欢迎你的加入 贤鱼摆烂团

怎么读懂php项目,网络安全,php,开发语言,服务器

如何运行🍀

这里用vscode举例

调出cmd
在终端输入php 名字+tab(tab自动补全名字)

记得要进入目标目录下
怎么读懂php项目,网络安全,php,开发语言,服务器

语法🍀

在php文件中,既可以包含HTML代码,也可以包含php代码
而php代码必须用 <?php ?>包裹起来

举个例子

<html>
	<head>
		<title>Example</title>
	</head>
	<body>
		<?php
			echo "Hi, I'm a PHP script!";//可以看到php语句在HTML中
		?>
	</body>
</html>

注释

// 注释当前一行
/包裹内容全部注释/

输入输出语句

输出

echo “hellow word\n”;
输出一个或者多个字符串
var_dump(“hello word”);
打印相关变量的信息
printf(“%s”,“hellow word\n”);
和c语言一样,格式化输出
var_export
输出或者返回一个变量的字符串表示


<?php
    echo "Hello World\n";
    var_dump("Hello World");
    printf("%s","hello word\n");
?>

怎么读懂php项目,网络安全,php,开发语言,服务器

输入

fgets(STDIN): 获取输入的当前行
fread(STDIN,n): 获取前n个字符
fgetc(STDIN):获取一个字符
sscanf(string $str ,string KaTeX parse error: Expected 'EOF', got '&' at position 17: …ormat [, mixed &̲… ]):将 str 按照 fromat 进行格式化解析

<?php
    $str = fgets(STDIN);//获取当前行
    sscanf($str,"%s %d",$s,$d);
    echo $s,$d;
?>

怎么读懂php项目,网络安全,php,开发语言,服务器

变量

$a=1;
$b;
%c="hellow word";

$+变量名

如果为赋值直接使用,变量将为空

变量作用域

分为全局变量局部变量static关键字

全局变量:定义在函数外都可以使用的变量,在整个文件中都可以用,作用域是从定义处一直到文件结尾

局部变量:函数内定义,只能在函数内部使用,作用域就是函数定义范围内。函数内使用全局变量需要global关键字或者==$globals[变量名]==数组

static关键字:将变量生存周期变为全局,不会影响作用域

超级全局变量

$GLOBALS//一个包含了全部变量的全局数组。变量的名字就是数组的键。
$_SERVER//服务器和执行环境信息,是一个包含了诸如头信息(header)、路径(path)、以及脚本位置(script locations)等等信息的数组
$_GETHTTP GET //变量,通过URL参数传递给当前脚本的变量的数组。 自动url解码
$_POSTHTTP POST// 变量,HTTP POST请求的。Content-Type 是 application/x-www-formurlencoded 或 multipart/form-data 时,会将变量以关联数组形式传入当前脚本
$_FILESHTTP //文件上传变量,通过 HTTP POST方式上传到当前脚本的项目的数组
$_REQUESTHTTP //Request 变量,默认情况下包含了 $_GET(自动url解码),$_POST 和$_COOKIE 的数组。
$_SESSION//Session 变量,当前脚本可用 SESSION 变量的数组
$_ENV//环境变量,通过环境方式传递给当前脚本的变量的数组。
$_COOKIE//HTTP Cookies,通过 HTTP Cookies方式传递给当前脚本的变量的数组
$php_errormsg//前一个错误信息
$HTTP_RAW_POST_DATA//原生POST数据
$http_response_header//HTTP 响应头,使用HTTP 包装器时,$http_response_header 将会被HTTP 响应头信息填充。
$argc//传递给脚本的参数数目,传递给脚本的参数数目
$argv:传递给脚本的参数数组,传递给脚本的参数数组

数据类型

数字型

$int1=1234 //十进制正整数
$int2=-1234 //负整数
$int3=01234 //八进制整数
$int4=0x1234 //十六进制整数
$float1=666.66 //浮点数
$float2=6.6666e2 //表示6.6666乘以10的2次方,为指数形式的浮点数

字符串型

$c1 = 'c'
$c2 = "c"
$s1 = 'str'
$s2 = "str"

布尔型

只有true和false

$a = true;
$b = false;

数组型

定义

PHP中的数组实际上是一个有序映射。映射是一种把 values 关联到 keys 的类型。
key的值必须是整型或者字符串型values值可以是任何类型
定义数组时如果不加key键,key值默认从0开始(下标从0)。

$array1 = [
	"foo" => "bar",
	"bar" => "foo",
];
$array2 = ['a','b']; #等价于 $array2 = [ 0 => "a", 1 => "b"];
$array3 = array(
	"foo" => "bar",
	"bar" => "foo",
);
$array4 = array("a","b"); #等价于 $array4 = array(0 =>'a', 1=>'b')
增加元素

改变赋值来增加元素

$arr['xxx']='yu';
删除元素

利用unser()函数

unset($arr['xianyu']);
查找元素

用key直接访问

var_dump($arr['aaa']);
修改元素

通过ket访问并且修改

$arr['aaa']='xianyu'

常量

定义

define ( string $name , mixed $value )
	name:必选参数,常量名称,即标志符。
	value:必选参数,常量的值。
define('SCHOOL','xianyu');
echo SCHOOL;

怎么读懂php项目,网络安全,php,开发语言,服务器

系统常量

名字 作用
_LINE _ 文件中的当前行号。
_FILE _ 文件的完整路径和文件名。如果用在被包含文件中,则返回被包含的文件名。
_DIR _ 文件所在的目录。如果用在被包括文件中,则返回被包括的文件所在的目录。
_FUNCTION _ 函数名称(PHP 4.3.0 新加)。
_CLASS _ 类的名称(PHP 4.3.0 新加)。
_TRAIT _ Trait 的名字(PHP 5.4.0 新加)。
_METHOD _ 类的方法名(PHP 5.0.0 新加)。返回该方法被定义时的名字(区分大小写)。
_NAMESPACE _ 当前命名空间的名称(区分大小写)。此常量是在编译时定义的(PHP 5.3.0增)。

运算符

算数运算符

符号 意义
+
-
*
/
% 取余
++ 累加
累减

字符串运算符

只有一个英文句号 .

赋值运算符

符号 意义
= 右边的赋值给左边
+= 左边的值加上右边的值
-= 左边的值减去右边的值
*= 左边的值乘右边的值
%= 左边的值对右边的值取余数
.= 左边字符串连接到右边

位运算

符号 意义
& 按位与
竖杠 按位或
^ 按位异或
>> 按位右移
<< 按位左移
~ 按位取反

逻辑运算符

符号 意义
&&(and) 逻辑与
两个竖杠 逻辑或
xor 逻辑异或
逻辑非

比较运算符

符号 意义
< 小于
> 大于
<= 小于等于
>= 大于等于
== 等于(不包括类型)
=== 完全等于(类型也要相等)
!= 不等于

其他运算符

符号 意义
$ 定义变量
& 变量地址
@ 屏蔽错误信息(扔到函数前头)
-> 应用对象方法或者属性
=> 用于数组元素赋值)
?: 三目运算符

流程控制语句

if-elseif-else

if ($a > $b) {
	echo "a is bigger than b";
} elseif ($a == $b) {
	echo "a is equal to b";
} else {
	echo "a is smaller than b";
}

switch

switch ($i) {
	case 0:
		echo "i equals 0";
		break;
	case 1:
		echo "i equals 1";
		break;
	case 2:
		echo "i equals 2";
break;
}

while

$i = 1;
while ($i <= 10) {
	echo $i++;
}

do-while

$i = 0;
do {
	echo $i;
} while ($i > 0);

for

or ($i = 1; $i <= 10; $i++) {
	echo $i;
}

foreach

$arr = array("one", "two", "three");
foreach ($arr as $key => $value) {
	echo "Key: $key; Value: $value<br />\n";
}
foreach ($arr as $value) {
	echo "Value: $value<br />\n";
}

函数

<?php
function add_some_str_a($string)
{
	$string .= 'and something extra.';
}
function add_some_str_b(&$string)
{
	$string .= 'and something extra.';
}
$str = 'This is a string, ';
add_some_str_a($str);
echo $str."\n";
add_some_str_b($str);
echo $str."\n";
?>

怎么读懂php项目,网络安全,php,开发语言,服务器

结束语🏆

后面会继续更新关于php的内容,可以订阅专栏关注一下奥

怎么读懂php项目,网络安全,php,开发语言,服务器文章来源地址https://www.toymoban.com/news/detail-802715.html

到了这里,关于25分钟了解php?php基础的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 十分钟读懂Stable Diffusion运行原理

    AIGC 热潮正猛烈地席卷开来,可以说 Stable Diffusion 开源发布把 AI 图像生成提高了全新高度,特别是 ControlNet 和 T2I-Adapter 控制模块的提出进一步提高生成可控性,也在逐渐改变一部分行业的生产模式。惊艳其出色表现,也不禁好奇其背后技术。本文整理了一些学习过程中记录的

    2024年02月09日
    浏览(64)
  • 5 分钟读懂开源服务框架 Dubbo 及其最新规划

    一句话定义 Apache Dubbo 是一款微服务开发框架,它帮助解决微服务开发中的通信问题,同时为构建企业级微服务的提供服务治理能力,Dubbo 不绑定编程语言,我们的目标是为所有主流语言提供对等的微服务开发体验。 基本架构 Dubbo 从架构图上分为数据面和控制面。在数据面,

    2023年04月21日
    浏览(34)
  • 干货分享 | 3分钟读懂漏洞扫描与代码审计的区别

    很多研发同学常常 将漏洞扫描与代码审计的概念混淆 。有些人认为代码审计就是漏洞扫描,也有些人认为做完漏洞扫描就不需要做代码审计了。今天我们就来讲讲代码审计与漏洞扫描的区别。 造成以上混淆的原因有以下几点: 工具的相似性 漏洞扫描和代码审计都是安全领

    2024年02月01日
    浏览(42)
  • CTF是什么?一文带你读懂网络安全大赛

    💻随着大数据、人工智能的发展,人们步入了新的时代,逐渐走上科技的巅峰。 ⚔科技是一把双刃剑,网络安全不容忽视,人们的 隐私 在大数据面前暴露无遗,账户被盗、资金损失、网络诈骗、隐私泄露,种种迹象表明,随着互联网的发展, 网络安全 需要引起人们的重视

    2024年02月07日
    浏览(63)
  • 用通俗易懂的方式讲解:十分钟读懂 Stable Diffusion 运行原理

    AIGC 热潮正猛烈地席卷开来,可以说 Stable Diffusion 开源发布把 AI 图像生成提高了全新高度,特别是 ControlNet 和 T2I-Adapter 控制模块的提出进一步提高生成可控性,也在逐渐改变一部分行业的生产模式。惊艳其出色表现,也不禁好奇其背后技术。 之前写过一篇实战类的文章一文

    2024年01月21日
    浏览(56)
  • 一分钟读懂:矩阵的特征值分解、奇异值分解和伪逆矩阵

    通过把矩阵运算分解成多个矩阵的乘法,可以简化矩阵运算,也可发现对应线性变换的一些内在规律和特性。根据不同的目的,有不同的分解策略。本文我们讨论最常用的特征值分解和奇异值分解。 定义了矩阵的加、减、乘、除(逆)运算后,数学家们自然希望探索矩阵更多

    2024年02月03日
    浏览(50)
  • 小白学go基础03-了解Go项目的项目结构

    我们先来看看第一个Go项目——Go语言自身——的项目结构是什么样的。Go项目的项目结构自1.0版本发布以来一直十分稳定,直到现在Go项目的顶层结构基本没有大的改变。 截至Go项目commit 1e3ffb0c(2019.5.14), Go1.0 项目结构如下: 作为Go语言的创世项目,Go的项目结构的布局对

    2024年02月09日
    浏览(51)
  • 一文读懂flutter线程: 深入了解Flutter中的多线程编程

    在移动应用开发领域,Flutter已经成为了一个备受欢迎的框架,用于创建高性能、跨平台的应用程序。Flutter的一个关键特性是其能够轻松处理多线程编程,以改进应用程序的性能和响应性。本文将深入探讨Flutter中的多线程编程,包括为什么需要多线程、如何在Flutter中创建和管

    2024年01月20日
    浏览(80)
  • 【云原生】3分钟快速在Kubernetes1.25部署Prometheus2.42+Grafana9.5.1+Alertmanager0.25

    1、简介 Prometheus-operator帮助我们快速创建Prometheus+Grafana+Alertmanager等服务,而kube-prometheus更加完整的帮助我们搭建全套监控体系,这包括部署多个 Prometheus 和 Alertmanager 实例, 指标导出器,例如用于收集节点指标node_exporter,将prometheus链接到各种 指标终结点,以及用于通知群集

    2024年02月11日
    浏览(40)
  • [网络安全]sqli-labs Less-25a 解题详析

    不同于25关的是sql语句中对于id没有单引号包含,同时没有输出错误项,故报错注入不能用。 有两种方式:延时注入和联合注入;本文采用联合注入。 具体过程不再详述,本文给出最终POC: 具体过程本文不再赘述,可移至本专栏相关文章:SQLiLabs靶场专栏

    2024年02月06日
    浏览(48)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包