PHP基础知识详细讲解

 更新时间:2022年12月03日 09:22:02   作者:coleak  
PHP是安全中需要掌握的一门语言,就这么一点儿时间教网络安全,不可能精通,这里就不要求你精通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;
?>

到此这篇关于PHP基础知识详细讲解的文章就介绍到这了,更多相关PHP基础知识内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 让你成为更出色的PHP开发者的10个技巧

    让你成为更出色的PHP开发者的10个技巧

    PHP可能是当下最流行的Web开发语言了。超过2000万的站点使用PHP,并且像Facebook,维基百科等巨型站点,以及全世界最大的开源项目之一的WordPress和Drupal也在使用它。
    2011-02-02
  • 解析关于wamp启动是80端口被占用的问题

    解析关于wamp启动是80端口被占用的问题

    本篇文章是对关于wamp启动是80端口被占用的问题(win7系统下WAMP 80端口被Microsoft-HTTPAPI/2.0占用的解决办法)进行了详细的分析介绍,需要的朋友参考下
    2013-06-06
  • Eclipse的PHP插件PHPEclipse安装和使用

    Eclipse的PHP插件PHPEclipse安装和使用

    PHP有很多相当不错的开发工具,如Zend Studio、NetBeans、phpdesigner等,但对于习惯Java编程的程序猿们来说,最常用的还要属Eclipse。那么Eclipse能用于PHP开发吗?答案是“必须滴”。
    2014-07-07
  • php5编程中的异常处理详细方法介绍

    php5编程中的异常处理详细方法介绍

    比较详细的关于php5的异常处理方法,而且给出了,多种方法
    2008-07-07
  • PHP进行批量任务处理不超时的解决方法

    PHP进行批量任务处理不超时的解决方法

    这篇文章主要介绍了PHP进行批量任务处理不超时的解决方法,结合实例形式简单分析了php结合ajax进行异步处理实现批量任务不超时的相关技巧,需要的朋友可以参考下
    2016-07-07
  • 自写的利用PDO对mysql数据库增删改查操作类

    自写的利用PDO对mysql数据库增删改查操作类

    这篇文章主要给大家介绍了关于自写的利用PDO对mysql数据库的增删改查操作类的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧。
    2018-02-02
  • php计算汉明距离总和的实例讲解

    php计算汉明距离总和的实例讲解

    在本篇文章里小编给大家整理的是一篇关于php计算汉明距离总和的实例讲解内容,有需要的朋友们可以跟着学习参考下。
    2021-07-07
  • PHP实现深度优先搜索算法(DFS,Depth First Search)详解

    PHP实现深度优先搜索算法(DFS,Depth First Search)详解

    这篇文章主要介绍了PHP实现深度优先搜索算法(DFS,Depth First Search),简单分析了深度优先搜索算法的原理并结合具体实例给出了php实现深度优先搜索的具体步骤与相关操作技巧,需要的朋友可以参考下
    2017-09-09
  • php基于协程实现异步的方法分析

    php基于协程实现异步的方法分析

    这篇文章主要介绍了php基于协程实现异步的方法,结合实例形式分析了php基于协程调度的异步操作实现方法,需要的朋友可以参考下
    2019-07-07
  • php 多个submit提交表单 处理方法

    php 多个submit提交表单 处理方法

    php中一个多个submit提交表单如何处理(区分不同的表单提交)
    2009-07-07

最新评论