本帖最后由 hackerbob 于 2022-4-22 16:23 编辑
前言
这是我总结的php基础内容,完全由我一字一句写出来的,绝非复制粘贴网上的教程
其中参杂了一些我的个人见解,如果有不严谨或者不正确的地方请指出,我会更正
以后,我会逐渐完善本篇教程
为什么要学习php?
根据w3techs官方显示,78.7%网站的服务器端编程语言使用PHP,其次是ASP.NET占比10.5%,第三是Java占比3.5%,Python则排名在第七占比1.4%。
虽然网上对php的唱衰不断,但是数据可以说明一切,php依旧是老大,如果因为别人的三言两语就放弃学某一门语言,那根本就是无聊之举
php编译器
推荐使用phpStudy 2018版,用nodpad++来写php代码
1.代码格式
<?php
中间是php代码
?>
注意,php语句结尾要有 ; 号
例:echo "helloworld";
2.注释
单行注释://此乃单行注释
多行注释:
/*
此乃多行注释
*/
3.输出
1.echo "helloworld";
//echo能输出多个字符串,但无返回值
2.print "helloworld";
//print只能输出一个字符串,如果输出成功,则返回1,即true;反之则返回0,即false
4.变量
变量格式为: $+ 变量名 例:$bob
变量名格式:
1.不能有空格
2.只能是字母,数字和下划线
3.特殊符号不可以
变量声明
<?php
$bob = 1;
$hacker = "helloworld";
$hello = true;
?>
5.常量
<?php
define("bob","hello",true);
//常量用define来定义,格式为:define(常量名,常量值,是忽略大小写错误)
//注意,是否忽略大小写错误,如果是true,则忽略大小写错误,如果是false,则不忽略大小写错误,默认是false
?>
例子:
<?php
define("bob","hello",true);
echo bob;//正确写法,输出hello
echo BOB;//错误写法,会报错
define("abc","hi",false);
echo abc;//正确写法,输出hi
echo ABC;//正确写法,输出hi
?>
6.函数,类,命名空间
函数:
<?php
function bob($bob,$hello)//函数声明格式:function+函数名(参数){函数内容}
{
echo $bob;
echo $hello;
$hakcer = $bob + $hello;
return $hacker;//如果有返回值,加上return
}
echo bob(1,2);//函数调用:函数名(参数)
?>
结果:
3
类:
<?php
class bob{
echo "hello";//类定义格式:class + 类名{要执行的代码}
}
?>
命名空间:
<?php
namespace bob{
echo "hello";//命名空间定义格式:namespace + 空间名{要执行的代码}
}
?>
7.变量的作用域
<?php
$bob = 1;//在函数之外声明的变量,关系到全局,叫全局变量
echo $bob;
function bob()
{
global $bob;//全局变量不可以在函数中直接调用,要先用giobal引用
echo $bob;
static $hakcer = 1;
/*在函数之内声明的变量,关系到局部,叫局部变量,局部变量只能在函数内部使用
函数中的局部变量在函数执行后就会删除,如果需要保存,要用static */
}
?>
8.单引号和双引号的区别
双引号解释字符串中的变量和转义字符
<?php
$bob = "hackerbob";
echo "hello $bob";
?>
结果:
hello hackerbob
单引号不解释
<?php
$bob = "hakcerbob";
echo 'hello $bob';
?>
结果:
hello $bob
9.字符串
输出时,字符串之间可以用 . 来拼接
<?php
$a = "hello";
$b = "world";
echo $a."bob".$b;
?>
结果:
hellobobworld
字符串相关函数(比较重要的):
strlen()//获取字符串长度
strpos(原字符串,要查找的字符串)
//如果有则返回要查找的字符串在原字符串的第一个字母的下标,没有返回0,即false
chop(原字符串,要删除的字符串)
//从右开始,删除原字符串中指定的字符串
10.数组
格式:变量 = array(数组内容)
1.数值数组:
<?php
$a = array("hello","hi,"bob");
echo $a[0];//数值数组中的数据通过下标访问
?>
结果:
hello
2.关联数组:
<?php
$a = array("a" => "hello","b" => "hi");//关联数组其实就是给下标取了一个别名而已
echo $a['a'];//访问时用别名访问
?>
结果:
hello
3.多维数组:
//其实多维数组就是几个数组嵌套在一起,下面是一个三维数组
$bob = array(
array(
array(1, 2),
array("hello", "hi"),
),
array(
array("bob", "hacker"),
array(1,2),
),
);
echo $bob[0][0][0]//也是从最外边的数组访问到里面
结果:
1
11.运算符
算术运算符:
<?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
$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
递增/递减运算符:
$b = 2;
$a = ++$b;//$a = 3
$a = $b++;//$a = 2
$a = --$b;//$a = 1;
$a = $b--;//$a = 2
比较运算符:
$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
逻辑运算符:
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
if(1 < 10){
echo "1<10"//if(条件){要执行的代码)
}
?>
}
2.if....else....语句
如果条件为真,则执行if处的代码
其他情况,执行else处代码
<?php
if(1 < 10){
echo "1 < 10";//if(条件){要执行的代码}
}
else{
echo "1 >= 10";//else{要执行的语句)
}
?>
3.if....elseif.....else......语句
如果if条件为真,则执行if处代码
如果elseif条件为真,则执行elseif处代码
其他情况,执行else处代码
注意:elseif可以放多个
<?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
$a=10
switch ($a)
{
case 1:
echo "1":
break;
case 2:
echo "2";
break;
case 3:
echo "3";
break;
default:
echo "无法识别";
}
?>
结果:
1
13.循环
1.while循环
判断条件是否为真,如果为真则执行代码,执行完毕后再判断条件是否为真
<?php
while(1<10){
echo "1<10";//while(条件){要执行的代码)//运行后会不停输出1<10
}
?>
2.do....while....循环
先执行一次代码,再判断条件是否为真
<?php
$a = 0
do{
++$a
}
while($a < 10);
?>
3.for循环
先执行初始化代码,再判断,如果为真,就执行代码,执行完后再执行增量代码,再判断
注意:初始化代码只执行了一次
<?php
for ($a=10; $i>4; $i--)
{
echo $a
}
?>
4.foreach循环
foreach是用来遍历数组的
<?php
$a = array("hello","hi")
foreach($a as $b){
echo $b
}
?>
结果:
hello
hi
14.魔术常量
1.LINE
<?php
echo __LINE__//__LINE__返回当前行数
?>
结果:
2
2.FILE
<?php
echo __FILE__//__FILE__返回当前文件路径
?>
结果:
E:\bob\bob.php
3.DIR
<?php
echo __DIR__//__DIR__返回当前文件所在的文件夹
?>
结果:
E:\bob
|