超详细的PHP入门知识点讲解

news2024/11/29 2:50:49

目录

一、简介

二、php基本语法

 二、变量和作用域

三、常量

四、数据类型

五、运算符

六、流程控制

七、超全局变量


一、简介

基础知识:
需要一定的html和css的语法知识

基本概念:
PHP(超文本预处理器)是一种通用开源脚本语言,在服务器上执行。

PHP文件:

  • PHP 文件可包含文本、HTML、JavaScript代码和 PHP 代码
  • PHP 代码在服务器上执行,结果以纯 HTML 形式返回给浏览器
  • PHP 文件的默认文件扩展名是 ".php"

二、php基本语法

<?php
#单行注释1
// 单行注释2
/**
 多行注释3
 */
echo "<h1>hello world</h1>";
$name="coleak";
$mes="hello";
echo $mes." ".$name;
echo "<br>";
echo "my name is $name";
echo "<br>";
echo 'my name is $name';
echo "<br>";
var_dump($name);
// 调试函数,没有返回值
?>

 二、变量和作用域

<?php
function fun()
{
    $y=0;//局部变量
    echo "y的值为: $y";
    echo "<br>";
    echo "x的值为: $x";
}
$x=1;//全局变量
fun();
echo "<br>";
echo "y:$y";
echo "<br>";
echo "x:$x";
?>

 分析:此时函数内不能访问全局变量,需要使用globar $x;  函数外不能访问局部变量。

<?php
function fun()
{
    static $y=0;//静态变量
    echo "y的值为: $y";
    echo "<br>";
    $y++;
}
fun();
fun();
fun();
fun();
?>

三、常量

<?php
// 被替代的写法
define("mess","hello");
echo mess;
// 新写法
const name ='coleak';
echo name;
function fun()
{
    echo name;
}
fun();
?>

四、数据类型

  • 布尔类型

<?php
$a=true;
$b=False;
if(is_bool($a))
    if(is_bool($b))
    echo 1;
?>

 此时输出为1,不区分大小写的弱语言

  • heredoc和nowdoc
<?php
$a=true;
$b=False;
if(is_bool($a))
    if(is_bool($b))
    echo 1;
?>


<?php
$name="coleak";
$message=<<<'EOT'
hello $name
EOT;
echo $message;
?>

上面输出为hello coleak,下面输出为hello $name

  • 数组
<?php
$a1=array('12',"12",12);
$a2=[1,2,3,4];
$a3=[
"hh"=>6,
5=>'coleak'
];
var_dump($a1);
echo "<br>";
var_dump($a2);
echo "<br>";
var_dump($a3);
echo "<br>";
unset($a3['hh']);
var_dump($a3);
?>

array(3) { [0]=> string(2) "12" [1]=> string(2) "12" [2]=> int(12) }
array(4) { [0]=> int(1) [1]=> int(2) [2]=> int(3) [3]=> int(4) }
array(2) { ["hh"]=> int(6) [5]=> string(6) "coleak" }
array(1) { [5]=> string(6) "coleak" }

  • 对象
<?php
class person
{
   var $count=1;
   function func()
   {
    echo $this->count;
   }
}
$per1=new person();
echo $per1->count;//后面的count前面不用加$号
echo "<br>";
$per1->func();
?>

此时输出为两个1

  • null
<?php
$a=1;
$b=2;
function fun()
{
    echo $a+$b;
    echo "<br>";
    var_dump($a);
    echo "<br>";
    var_dump($b);
    echo "<br>";
}
fun();
var_dump($a);
echo "<br>";
var_dump($b);
echo "<br>";
?>

0
NULL
NULL
int(1)
int(2)

<?php
$a=10;
unset($a);
var_dump($a+1);
echo $a+2;
echo "<br>";
var_dump($b+3);
echo $b+4;
?>

2

4

五、运算符

  • 字符串运算符
<?php
$a="hello";
$b=$a."world";
$a.="world";
echo $b,"<br>";
echo $a;
?>

helloworld
helloworld

  • 比较运算符

 注意:当字符串遇到数字内容的比较时,如果不是使用绝对比较符,则会转化为对应的数字进行比较。

  • 逻辑运算符

  •  数组运算符

<?php
$a=[
"a"=>"aa",
"b"=>"bb"
];
$b=[
"a"=>"aaa",
"c"=>"cc"
];
$c=$a+$b;
var_dump($c);
?>

array(3) { ["a"]=> string(2) "aa" ["b"]=> string(2) "bb" ["c"]=> string(2) "cc" }

由此可以看出+时并没有覆盖重复的键。

  • 三元操作符
<?php
// 写法一(老旧)
$a="coleak";
$name=$a?$a:"nobody";
echo $name;
// 新写法
$name2=$a?:'nobody';
echo "<br>",$name2;
?>

coleak
coleak

六、流程控制

<?php
$x=[1,2,3,4,5];
foreach ($x as $val)
{
    echo $val."<br>";
}
?>

1

2

3

4

5

七、超全局变量

<?php
$a=10;
$b=20;
function add()
{
    $GLOBALS['z']=$GLOBALS["a"]+$GLOBALS['b'];
}
add();
echo $z;
?>

 30

  •  POST方式
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <form method="post" action="index.php">
        <p>my_add</p>
        <input type="text" name="add1">
        <br>
        <input type="text" name="add2">
        <br>
        <input type="submit" value="提交">
    </form>
</body>
</html>
<?php
$add1=$_REQUEST["add1"];//也可以用$_POST
$add2=$_REQUEST["add2"];//也可以用$_POST
$add=$add1+$add2;
echo $add;
?>

333 

  • GET方式(不安全) 
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <form method="get" action="index.php">
        <p>Name:<input type="text" name="fname"></p>
        <p>Password:<input type="password" name="passw"></p>
        <p><input type="submit" value="提交"></p>
    </form>
</body>
</html>
<?php
$fname=$_GET["fname"];
$password=$_GET["passw"];
$message=<<<ETO
用户名称 $fname 用户密码 $password
ETO;
echo $message;
?>

 

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

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

相关文章

汽车销量数据库(分车型、分品牌月度销量数据 2005-2021)

1、数据来源&#xff1a;汽车工业协会 2、时间跨度&#xff1a;2005年1月-2021年5月 3、区域范围&#xff1a;全国 4、指标说明&#xff1a; 该份数据包含全国各种汽车销量数十个相关指标&#xff01; 该份数据包含如下指标&#xff1a; 轿车&#xff1a;一汽大众、上海大…

TMS Sphinx Alexandria Full Source

TMS Sphinx Alexandria Full Source 用于身份访问管理的TMS Sphinx Delphi框架&#xff0c;包括授权和身份验证。 TMS Sphinx允许您为多个应用程序实现单点登录(SSO)&#xff1a;web、本机、移动或机器到机器API通信。它可用于通过登录表单、类似的用户界面和基于服务的身份验证…

「低代码」跑通现代BI“最后一公里”的背后

文|智能相对论 作者|沈浪 “未来不懂低代码就和二十年前不会用word一样。未来80%的应用会由业务人员通过低代码开发。”在2022云栖大会上&#xff0c;阿里云智能总裁张建锋对低代码的发展前景依旧保持着非常积极的态度。 无独有偶&#xff0c;微软中国CTO韦青在他的专栏《万…

100天精通Python(数据分析篇)——第66天:Pandas透视表基础+实战案例(pivot_table函数)

文章目录每篇前言一、透视表基础参数说明实战案例0. 导入Excel数据1. data2. index3. values4. columns5. aggfunc6. fill_value7. dropna8. margins9. margins_name10. observed11. sort每篇前言 &#x1f3c6;&#x1f3c6;作者介绍&#xff1a;Python领域优质创作者、华为云…

linux dolphin为tags协议服务的进程意外退出,kioslave5已经意外关闭

刚开始用archlinux的使用的是dolphin感觉还是挺好用的。不过最近不知道为什么dolphin每次打开都会弹出个错误&#xff0c;很影响效率和心情。我简单的搜索报错代码&#xff0c;也没有成功解决报错。于是打算重新安装一个文件管理器做替换。 现象 运行dolphin或者运行浏览器中…

在PyCharm快速加载第三方模块的设置方法

在《小白学Python》慕课中说明了多种加载第三方模块的方法&#xff0c;这里补充一个在PyCharm中更为方便设置国内镜像源加载的方法。 因为默认情况下&#xff0c;PyCharm是加载国外网站的模块资源&#xff0c;因此常常会因为网络不稳定导致加载失败。因此&#xff0c;可以设置…

基于JAVA的学校图书管理系统(Swing+GUI)

目 录 第1章 绪论 1 1.1系统开发背景和意义 1 1.2系统可行性研究 1 1.3系统开发目标 2 1.4开发平台、运行环境 2 第2章 相关技术概述 3 2.1Java语言简介 3 2.2 Sqllite技术简介 4 2.3 Swing技术简介 5 第3章 需求分析 6 3.1 设计目标 6 3.2 功能分析 6 3.2.1 用户管理 6 3.2.2 …

深度学习day01

Marchine leariing 机器学习就是自动找函式 告诉机器要找的函式用 Supervised Learning 函式的Loss ——评价函式的好坏 Reinforcement就是让机器自己下象棋&#xff0c;输赢自己尝试&#xff0c;没像监督学习那样有人为规定 给函式寻找范围&#xff1a; 函式寻找方法——…

基于STM32实现USB组合设备CDC+MSC正确打开方式

摘要&#xff1a; 前一段时间对无刷电机的驱动有了兴趣&#xff0c;移植了odrive和simpleFOC代码&#xff0c;里面有关于stm32实现USB复合的实例&#xff0c;最近也有打算在electronbot里实现U盘通讯来实现bootloader和语音文件的拷贝和管理。看了网上也有相关实现文章&#x…

【mysql是怎样运行的】-客户端与服务器连接

文章目录1. 几种连接方式1.1 TCP/IP1.2 命名管道和共享内存1.3 UNIX 域套接字2. 服务器处理客户端请求2.1 连接管理2.2 解析与优化2.3 存储引擎1. 几种连接方式 1.1 TCP/IP 数据库服务器进程和客户端进程可能运行在不同的主机中&#xff0c;它们之间必须通过网络进行通信。My…

韩国研究人员开发交通信号控制新算法

由Keemin Sohn教授领导的韩国中央大学的研究小组提出了一种用于交通信号控制的元RL模型。具体来说&#xff0c;该团队开发了一个扩展的深度Q网络&#xff08;EDQN&#xff09;结合的基于上下文的元RL模型&#xff0c;用于交通信号控制。传统的交通信号控制器通常无法处理交通拥…

Echarts画散点图

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 Echarts画散点图前言一、散点图悬浮框鼠标移入可滚动操作二、散点图偏下方的点悬浮数据显示不全三、数据量大、数据类别多、数据重复点多造成散点图散点展示不全或展示散点出…

操作系统基础教程——第六章课后答案

1.思考题 &#xff08;6&#xff09;什么是临界区&#xff1f;什么是临界资源?什么是竞争条件? 临界区&#xff1a;访问临界资源的程序段&#xff08;代码&#xff09;。 临界资源&#xff1a;并发进程中共享变量所代表的资源&#xff1b;一次只能供一个进程使用的资源。 …

【机器学习知识点】【1】二维与三维空间梯度下降微分求解及可视化展示

【机器学习知识点】系列文章主要介绍机器学习的相关技巧及知识点&#xff0c;欢迎点赞&#xff0c;关注共同学习交流。 本文主要介绍了机器学习中梯度下降的数学微分求解方法及其可视化。 目录1. 二维空间的梯度下降求解及可视化1.1 二维空间梯度求解1.2二维空间梯度可视化2. 三…

灰色关联度分析-详细代码和说明

1、数据来源&#xff1a;自主计算 2、时间跨度&#xff1a;无 3、区域范围&#xff1a;无 4、指标说明&#xff1a; 因素分析的基本方法过去采用的主要是统计的方法&#xff0c;如回归分析&#xff0c;回归分析虽然是一种较通用的方法&#xff0c;但大都只用于少因素的、线…

SpringBoot SpringBoot 原理篇 3 核心原理 3.2 启动流程【1】

SpringBoot 【黑马程序员SpringBoot2全套视频教程&#xff0c;springboot零基础到项目实战&#xff08;spring boot2完整版&#xff09;】 SpringBoot 原理篇 文章目录SpringBootSpringBoot 原理篇3 核心原理3.2 启动流程【1】3.2.1 环境准备3.2.2 启动流程3 核心原理 3.2 启…

基本的图像处理操作

Python中的图像处理基础图像处理是一种对图像执行操作以从中提取信息或增强图像的方法。图像处理是当今计算机视觉中最热门的话题之一&#xff0c;因为它被认为是计算机视觉、OCR 和其他相机相关领域的基础。让我们开始实际处理图像。提示&#xff1a;只是在这里向你展示一个代…

MySQL数据库的事务

文章目录一、事务是什么&#xff1f;二、事务的四大特征原子性一致性持久性隔离性MySQL的四个隔离级别一、事务是什么&#xff1f; 数据库的事务是一种机制&#xff0c;一个操作序列&#xff0c;里面包含了一组数组库操作命令 事务把所有的命令作为一个整体一起向系统提交或撤…

世界杯直播背后的服务器(云计算体系)

世界杯直播背后的服务器 世界杯直播过程中&#xff0c;各大网络平台流媒体app上最大的变化毫无疑问就是零延迟。以前球迷看球是都会发现&#xff0c;网络直播的球赛会比电视播出的球赛延迟40s左右。如果群里有个看电视的兄弟兄弟每个进球他都能提前40秒预告给你&#xff0c;那么…

MySQL 索引

目录 一、索引的概念 二、索引的作用 三、索引的缺点 四、创建索引的原则依据 五、索引的分类和创建 1、普通索引 2、唯一索引 3、主键索引 4、组合索引&#xff08;单列索引与多列索引&#xff09; 5、全文索引&#xff08;FULLTEXT&#xff09; 六、查看索引 七、…