PHP基础知识详细讲解
作者:coleak 发布时间:2023-06-03 15:41:45
一、简介
基础知识:
需要一定的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;
?>
来源:https://blog.csdn.net/qq_63701832/article/details/128062940


猜你喜欢
- python菜鸟,每天都要进步一点点。二维元组的例子:A = ((1, 1, 1), (1, 1, 1),(1, 1, 1),(0, 0,
- 注意:列转行的方法可能是我独创的了,呵呵,因为在网上找不到哦,全部是我自己写的,用到了系统的SysColumns(一)行转列的方法先说说行转
- 目录一、运行效果二、实现方法1. 爬虫部分2.Tkinter部分三、打包四、代码获取今天咱们用Python爬虫和Tkinter界面来做一个翻
- 额。。。每个请求都有token值的传入,但是token非常易变,一旦变化,所有的接口用例都得改一遍token,工作量太大了。。。那么有没有一
- 在密码学中,ElGamal加密算法是一个基于迪菲-赫尔曼密钥交换的非对称加密算法。它在1985年由塔希尔·盖莫尔提出。GnuPG和PGP等很
- 本文实例为大家分享了python名片管理系统的开发代码,供大家参考,具体内容如下利用面向对象的开发方法,开发名片管理系统,要求用文件存储数据
- 环境:win10+phpstorm2022+phpstudy8+lnmp1、phpinfo(); 查看是否安装xdebug,没有
- 下面给大家提供几个函数参考。实例一:<?php function deletedir($dir){  
- 技巧1XmlNode.InnerText与.InnerXml的区别是:前者将内容中的<和>分别变成<和>,因此,希望
- 记录一下:# Three loss functionscategory_predict1 = Dense(100, activation=&
- 最近再写openpose,它的网络结构是多阶段的网络,所以写网络的时候很想用列表的方式,但是直接使用列表不能将网络中相应的部分放入到cuda
- Python是一门简单易学的编程语言,语法简洁而清晰,并且拥有丰富和强大的类库。与其它大多数程序设计语言使用大括号不一样 ,它使用缩进来定义
- 本文实例讲述了php将textarea数据提交到mysql出现很多空格的解决方法。分享给大家供大家参考。具体分析如下:有一些朋友可能会发现我
- 在网站开发的时候经常要用chr(),但本人比较懒没时间记那么多。于是到用到的时候就查,这样麻烦。现在将它写出来方便以后用到查,也方便大家!c
- 话不多说,小工具需求如下: 功能需求 -- 电脑开机后自动执行时间同步 非功能需求 -- 安装执行简单,无需安装额外环境一、代码实现基于以上
- 环境:python3.6 pyqt5只是简单的一个思路,请忽略脆弱的异常防护:# -*- coding: utf-8 -*-import s
- 0x00 前言eval是Python用于执行python表达式的一个内置函数,使用eval,可以很方便的将字符串动态执行。比如下列代码:&g
- 前段时日微软(Microsoft)正式发布了.NET Core 2.0,在很多开发社区中反响不错。但还是有一些开发者发出了疑问,.NET C
- 如果用树作为索引的数据结构,每查找一次数据就会从磁盘中读取树的一个节点,也就是一页,而二叉树的每个节点只存储一条数据,并不能填满一页的存储空
- ACCESS数据库中Field对象的caption属性(也就是标题)是用来设置数据字段的标题,在正常的数据库设计中为了保持维护的便利性,许多