查看: 1325|回复: 12

[原创] php基础教程

[复制链接]

2

技术

6

魅力

2

原创

病毒研究组

Rank: 8Rank: 8

积分
1721
人气
179
分享
17

最佳新人活跃会员

发表于 2022-5-3 14:31:56 | 显示全部楼层 |阅读模式
本帖最后由 hackerbob 于 2022-7-26 11:21 编辑

前言
这是我总结的php基础内容,完全由我一字一句写出来的,绝非复制粘贴网上的教程
其中参杂了一些我的个人见解,如果有不严谨或者不正确的地方请指出,我会更正
以后,我会逐渐完善本篇教程


为什么要学习php?
根据w3techs官方显示,78.7%网站的服务器端编程语言使用PHP,其次是ASP.NET占比10.5%,第三是Java占比3.5%,Python则排名在第七占比1.4%。
虽然网上对php的唱衰不断,但是数据可以说明一切,php依旧是老大,如果因为别人的三言两语就放弃学某一门语言,那根本就是无聊之举


php编译器
推荐使用phpStudy 2018版
1.代码格式
[PHP] 纯文本查看 复制代码
<?php
中间是php代码
?>

注意,php语句结尾要有 ; 号
例:echo "helloworld";
2.注释
[PHP] 纯文本查看 复制代码
单行注释://此乃单行注释
多行注释:
/*
此乃多行注释
*/

3.输出
[PHP] 纯文本查看 复制代码
1.echo "helloworld";
//echo能输出多个字符串,但无返回值
2.print "helloworld";
//print只能输出一个字符串,如果输出成功,则返回1,即true;反之则返回0,即false

4.变量
变量格式为: $ + 变量名
例:$bob
变量名格式:
                1.不能有空格
                2.只能是字母,数字和下划线
                3.特殊符号不可以
变量声明
[PHP] 纯文本查看 复制代码
<?php
$bob = 1;
$hacker = "helloworld";
$hello = true;
?>

5.常量
[PHP] 纯文本查看 复制代码
<?php
define("bob","hello",true);
//常量用define来定义,格式为:define(常量名,常量值,是忽略大小写错误)
//注意,是否忽略大小写错误,如果是true,则忽略大小写错误,如果是false,则不忽略大小写错误,默认是false
?>

例子:
[PHP] 纯文本查看 复制代码
<?php
define("bob","hello",true);
echo bob;//正确写法,输出hello
echo BOB;//错误写法,会报错
define("abc","hi",false);
echo abc;//正确写法,输出hi
echo ABC;//正确写法,输出hi
?>

6.函数,类,命名空间
函数:
[PHP] 纯文本查看 复制代码
<?php
function bob($bob,$hello)//函数声明格式:function+函数名(参数){函数内容}
{
        echo $bob;
        echo $hello;
        $hacker =  $bob + $hello;
        return $hacker;//如果有返回值,加上return
}
echo bob(1,2);//函数调用:函数名(参数)
?>

结果:
[PHP] 纯文本查看 复制代码
3

类:
[PHP] 纯文本查看 复制代码
<?php
class bob{
        echo "hello";//类定义格式:class + 类名{要执行的代码}
}
?>

命名空间:
[PHP] 纯文本查看 复制代码
<?php
namespace bob{
        echo "hello";//命名空间定义格式:namespace + 空间名{要执行的代码}
}
?>

7.变量的作用域
[PHP] 纯文本查看 复制代码
<?php
$bob = 1;//在函数之外声明的变量,关系到全局,叫全局变量
echo $bob;
function bob()
{
        global $bob;//全局变量不可以在函数中直接调用,要先用giobal引用
        echo $bob;
        static $hakcer = 1;
        /*在函数之内声明的变量,关系到局部,叫局部变量,局部变量只能在函数内部使用
        函数中的局部变量在函数执行后就会删除,如果需要保存,要用static */
}
?>

单引号和双引号的区别
双引号解释字符串中的变量和转义字符
[PHP] 纯文本查看 复制代码
<?php
$bob = "hackerbob";
echo "hello $bob";
?>

结果:
[PHP] 纯文本查看 复制代码
hello hacekrbob

单引号不解释
[PHP] 纯文本查看 复制代码
<?php
$bob = "hakcerbob";
echo 'hello $bob';
?>

结果:
[PHP] 纯文本查看 复制代码
hello $bob

9.字符串
输出时,字符串之间可以用 . 来拼接
[PHP] 纯文本查看 复制代码
<?php
$a = "hello";
$b = "world";
echo $a."bob".$b;
?>

结果:
[PHP] 纯文本查看 复制代码
hellobobworld

字符串相关函数(比较重要的):
[PHP] 纯文本查看 复制代码
strlen()//获取字符串长度
strpos(原字符串,要查找的字符串)
//如果有则返回要查找的字符串在原字符串的第一个字母的下标,没有返回0,即false
chop(原字符串,要删除的字符串)
//从右开始,删除原字符串中指定的字符串

10.数组
格式:变量 = array(数组内容)
1.数值数组:
[PHP] 纯文本查看 复制代码
<?php
$a = array("hello","hi,"bob");
echo $a[0];//数值数组中的数据通过下标访问
?>

结果:
[PHP] 纯文本查看 复制代码
hello

2.关联数组:
[PHP] 纯文本查看 复制代码
<?php
$a = array("a" => "hello","b" => "hi");//关联数组其实就是给下标取了一个别名而已
echo $a['a'];//访问时用别名访问
?>

结果:
[PHP] 纯文本查看 复制代码
hello

3.多维数组:
[PHP] 纯文本查看 复制代码
//其实多维数组就是几个数组嵌套在一起,下面是一个三维数组
$bob = array(
    array(
        array(1, 2),
        array("hello", "hi"),
    ),
    array(
        array("bob", "hacker"),
        array(1,2),
    ),
);
echo $bob[0][0][0]//也是从最外边的数组访问到里面

结果:
[PHP] 纯文本查看 复制代码
1

11.运算符
算术运算符:
[PHP] 纯文本查看 复制代码
<?php
$a = 1;
$b = 2;
$a + $b;// 加法运算 3
$a - $b;//减法运算 -1
$a * $b;//乘法运算 2
$a / $b;//除法运算 0.5
$a % $b;//取余 2
-$a;//取反 -1
$c = "hello";
$d = "world";
$c.$d;//合并字符串 helloworld
?>

赋值运算符:
[PHP] 纯文本查看 复制代码
<?php
$a = 3;
$b = 2;
$a = $b;//$a = 2
$a += $b;//$a = 5
$a -= $b;//$a = 1
$a *= $b;//$a = 6
$a /= $b;//$a = 1.5
$a %= $b;//$a = 1
?>

递增/递减运算符:
[PHP] 纯文本查看 复制代码
$b = 2;
$a = ++$b;//$a = 3
$a = $b++;//$a = 2
$a = --$b;//$a = 1;
$a = $b--;//$a = 2

比较运算符:
[PHP] 纯文本查看 复制代码
$a = 1;
$b = "1";
$a == $b;// 比较数值,等于返回true,反之返回false
$a === $b;//比较类型和数值,等于返回true,反之返回false
$a != $b;//比较数值是否不等于,不等于返回true,反之返回false
$a <> $b;//比较数值是否不等于,同上
$a !== $b;//比较数值和类型是否不等于,不等于返回true,反之返回false
$a < $b;//比较$a是否小于$b,小于返回true,反之返回false
$a > $b;//比较$a是否大于$b,大于返回true,反之返回false
$a <= $b;//比较$a是否小于等于$b,小于等于返回true,反之返回false
$a >= $b;//比较$a是否大于等于$b,大于等于返回true,反之返回false

逻辑运算符:
[PHP] 纯文本查看 复制代码
a and b;//a,b都为true,则返回true,相当于a && b
a or b;//a,b至少有一个为true,则返回true,相当于a || b
a xor b;//a,b仅有一个为true时,则返回true

12.判断
1.if语句
如果条件为真,则执行代码
[PHP] 纯文本查看 复制代码
<?php
if(1 < 10){
        echo "1<10"//if(条件){要执行的代码)
}
        ?>

2.if....else....语句
如果条件为真,则执行if处的代码
其他情况,执行else处代码
[PHP] 纯文本查看 复制代码
<?php
if(1 < 10){
        echo "1 < 10";//if(条件){要执行的代码}
}
else{
        echo "1 >= 10";//else{要执行的语句)
}
?>

3.if....elseif.....else......语句
如果if条件为真,则执行if处代码
如果elseif条件为真,则执行elseif处代码
其他情况,执行else处代码
注意:elseif可以放多个
[PHP] 纯文本查看 复制代码
<?php
$a = 5
if($a < 10){
        echo "a小于10";//if(条件){要执行的代码}
}
elseif($a > 10){
        echo "a大于10";//elseif(条件){要执行的代码}
}
else{
        echo "a等于10";//else{要执行的语句}
}
?>

4.switch语句
如果第一个case为真,则执行第一个case处代码,往后依此类推
所有case都不对,则执行default处代码
[PHP] 纯文本查看 复制代码
<?php
$a=10
switch ($a)
{
case 1:
    echo "1":
    break;
case 2:
    echo "2";
    break;
case 3:
    echo "3";
    break;
default:
    echo "无法识别";
}
?>

结果:
[PHP] 纯文本查看 复制代码
1

13.循环
1.while循环
判断条件是否为真,如果为真则执行代码,执行完毕后再判断条件是否为真
[PHP] 纯文本查看 复制代码
<?php
while(1<10){
        echo "1<10";//while(条件){要执行的代码)//运行后会不停输出1<10
}
?>

2.do....while....循环
先执行一次代码,再判断条件是否为真
[PHP] 纯文本查看 复制代码
<?php
$a = 0
do{
        ++$a
}
while($a < 10);
?>

3.for循环
先执行初始化代码,再判断,如果为真,就执行代码,执行完后再执行增量代码,再判断
注意:初始化代码只执行了一次
[PHP] 纯文本查看 复制代码
<?php
for ($a=10; $i>4; $i--)
{
    echo $a
}
?>

4.foreach循环
foreach是用来遍历数组的
[PHP] 纯文本查看 复制代码
<?php
$a = array("hello","hi")
foreach($a as $b){
       echo $b
}
?>

结果:
[PHP] 纯文本查看 复制代码
hello
hi

14.魔术常量
1.LINE
[PHP] 纯文本查看 复制代码
<?php
echo __LINE__//__LINE__返回当前行数
?>

结果:
[PHP] 纯文本查看 复制代码
2

2.FILE
[PHP] 纯文本查看 复制代码
<?php
echo __FILE__//__FILE__返回当前文件路径
?>

结果:
[PHP] 纯文本查看 复制代码
E:\bob\bob.php

3.DIR
[PHP] 纯文本查看 复制代码
<?php
echo __DIR__//__DIR__返回当前文件所在的文件夹
?>

结果:
[PHP] 纯文本查看 复制代码
E:\bob




评分

参与人数 6经验 +80 人气 +19 分享 +3 原创 +1 收起 理由
YFSafe + 3 确实强
YFSafe005 + 3 很给力!
shellcode + 2 赞一个!
xiaomeng + 30 很给力!
Andy + 3 + 1 赞一个!
JimmyzZZ + 50 + 8 + 3 很给力!

查看全部评分

本帖被以下淘专辑推荐:

0

技术

7

魅力

0

原创

版主

Rank: 7Rank: 7Rank: 7

积分
5133
人气
137
分享
5
发表于 2022-5-19 16:09:25 | 显示全部楼层
6.函数,类,命名空间
函数:hakcer打错了
Manners maketh man

2

技术

6

魅力

2

原创

病毒研究组

Rank: 8Rank: 8

积分
1721
人气
179
分享
17

最佳新人活跃会员

 楼主| 发表于 2022-5-19 19:59:29 | 显示全部楼层
xiaomeng 发表于 2022-5-19 16:09
6.函数,类,命名空间
函数:hakcer打错了

已改正

2

技术

6

魅力

2

原创

病毒研究组

Rank: 8Rank: 8

积分
1721
人气
179
分享
17

最佳新人活跃会员

 楼主| 发表于 2022-7-26 11:20:24 | 显示全部楼层
zhangzhixiao 发表于 2022-7-26 11:09
你把n******++改一下吧,要不然到时候给你删了

OK,这就改

2

技术

6

魅力

2

原创

病毒研究组

Rank: 8Rank: 8

积分
1721
人气
179
分享
17

最佳新人活跃会员

 楼主| 发表于 2022-7-26 11:21:38 | 显示全部楼层
zhangzhixiao 发表于 2022-5-25 17:49
PHP没有缩进吗?还是你没打

因为原来是用MarkDown写的,所以搬过来后,格式有些问题,凑乎看吧

0

技术

0

魅力

0

原创

初出茅庐

Rank: 2

积分
155
人气
0
分享
0
发表于 2022-7-31 11:48:38 | 显示全部楼层
初来乍到,先来技术教程区参拜大神

2

技术

6

魅力

2

原创

病毒研究组

Rank: 8Rank: 8

积分
1721
人气
179
分享
17

最佳新人活跃会员

 楼主| 发表于 2022-7-31 14:51:02 | 显示全部楼层
LSPD 发表于 2022-7-31 11:48
初来乍到,先来技术教程区参拜大神

你是不是卡饭论坛的LSPD?

1

技术

14

魅力

1

原创

退休版主

Rank: 8Rank: 8

积分
8190
人气
416
分享
59

论坛元老活跃会员灌水之王荣誉管理

发表于 2022-7-31 17:50:50 | 显示全部楼层
hackerbob 发表于 2022-7-31 14:51
你是不是卡饭论坛的LSPD?

不是,他应该是论坛某个人的马甲

2

技术

6

魅力

2

原创

病毒研究组

Rank: 8Rank: 8

积分
1721
人气
179
分享
17

最佳新人活跃会员

 楼主| 发表于 2022-7-31 19:27:36 | 显示全部楼层
JimmyzZZ 发表于 2022-7-31 17:50
不是,他应该是论坛某个人的马甲

OK                  

0

技术

0

魅力

0

原创

初出茅庐

Rank: 2

积分
155
人气
0
分享
0
发表于 2022-7-31 20:33:41 | 显示全部楼层

别信管理员,我真是本人
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表