挖掘者:银河宝藏免安装绿色中文版
2.29G · 2025-09-10
首先,这是我的学习笔记,因为我有一门编程语言的基础(C语言),所以写起来会有很大一部分都跳过了,并且我的PHP的学习是为了网安的web部分,所以可能并不适合所有人学习
首先是安装,需要安装phpstore和phpstudy,当然直接vscode写也行,我看的课程里是用的phpstore+phpstudy的环境搭建的,这样搭建也比较简单,而且phpstudy内还可以直接下mysql,可以省下弄mysql的时间
安装phpstudy之后,我们需要找到phpstudy中php安装的位置
我的phpstudy版本是8.1.1.3,其文件位置在安装位置phpstudy_proExtensionsphp
也可以在面板中寻找,如图
当我们找到之后就可以开始使用了,至于如何使用我们一步一步来
首先我们要写一段代码来展示我们真的开始学习了php ?
<?phpecho "hello world";?>
以上代码是php版本的hello world
在这里我们要注意,<?php
相当于C语言/C++中的头文件即可,当然也可以想象说是花括号 ?
此时,我们可以通过此处打开
但是我们打开后会发现浏览器显示502,这说明我们没有配置,那么我们事先准备好的php位置就有用了
我们依次点击phpstore里的File -> Settings -> PHP -> CLI Interpreter -> PHP executable
选择phpstudy中php所在目录中的php.exe
然后运行成功
当然,如果您喜欢探索,此时应该发现了
php注释与C相同
先提一嘴,在php里变量是不遵循强制类型检查的,也就是说你不必繁琐的去解释每个变量的数据类型,而是可以更多的专注变量内容,当然,这也意味着你的php程序更容易因为变量类型的问题出现更多的错误
变量的定义使用$
开始定义变量(就是在英文状态下按下键盘上shift+数字4)
但是疑似php中需要拥有一个初值,也可能是我没有找到不赋初值的办法
<?php$x = 1;$y = 2;echo $x + $y;?>
在这个例子内我们也可以看出php中变量的使用也需要携带$符号
接下来登场的是全局变量
php拥有全局变量的概念,内部访问全局变量需要使用global
关键字
<?php$x = 1;//全局变量function ceshi(){ echo $x;//会报错}$x++;//自增一次function ceshi2(){ global $x; echo $x;//正常使用}ceshi();ceshi2();
最后输出2,同时我们可以看到函数的定义也不需要指定强类型,而且调用也与C类似
那么为什么最后输出2呢
因为ceshi不通过但是php并不会因为一个错误而停止执行,他会继续执行,执行到ceshi2时输出被x++改变的x的值
静态变量使用与C一致,static,同时可以得到PHP中使用function定义函数,传参好像也需要携带$以证明其为变量
在php中换行等符号也可以使用与C相同(echo "n"
)或者不同的(PHP_EOF或者<br>
)
<?php$num = 0;//可以使用局部变量,但是这里为了让看完第二节就睡着的人记起来我们有全局变量function Text (){ global $num; while($num <= 100){ if ($num % 2 == 0){ echo $num; echo " "; } $num++; }}Text();?>
可以看到我非常喜欢把下一章的东西放之前来讲hhhh
在这里,function xxx(yyy)
相当于一个函数原型,这个xxx是作为函数名,yyy作为,其中yyy如果是变量依然遵循使用$标注
同时这个函数依然有返回值
返回使用return,与C一致
Ps:在php中大部分运算和C差不多,相同的运算在这里不赘述
首先是关于字符串,因为php不像C一样可以使用%xxx来控制输出,也不像C++一样在cout中添加<<来控制
所以这里先讲字符串
在php中变量可以和字符串连接在一起,他们的连接不像C使用strcat,也不像C++/Python使用+
而是使用.
对的,就是一个点,就很难绷,以下为案例
<?php$TXT1 = "a";$TXT2 = "b";echo $TXT1."<br>";echo $TXT1.",".$TXT2;?>
Ps:放结果挺占位置的,如果有需求打一下自己看一下吧
代码 | 内容 | 具体点的内容(其实就是凑字数) | 用法 |
---|---|---|---|
. | 并置 | 连接字符串 | xx.xx |
strlen() | 长度 | 求长度 | strlen(xx); |
strpos() | 位置 | 求A中字符串B的位置如果找到输出B的首个出现的位置[下标] | strpos(A,B); |
其他的话大部分和C一样,php7多一个intdiv向下取整,比较上有一些小变化
x===y是绝对等于,指值和类型相同,区别于==仅值相同,原因呢自然就是因为php在定义变量时是弱类型的
x!==y区别x!=y是值或类型不等都可(x!=y还可以使用x<>y)
逻辑运算符大致相同但是可以使用同等单词替代,and->&& or->|| xor->^
条件语句和三元与C大致一致,需要主要else if在php表现为elseif(无空格版本?离谱)
循环与C一致
条件语句没变化,也就多了elseif这个无空格的else if ?
然后多了一个循环,类似于C++11的循环范围
用来遍历关联数组foreach
写法
foreach ($a as $key => $value){ echo "key=" . $key . "," . "value=" . $value;}
当然看不懂没关系,马上就讲这个
首先是普通数组的定义,使用array定义,在php中数组是没有类型区别的
<?php//制作函数打印普通数组function pri(&$num){ for ($i = 0; $i <= count($num); $i++) { echo $num[$i] . " "; } echo "<br>" ;}//制作函数打印关联数组function pri2(&$num){ foreach ($num as $key => $value) { echo $key . " " . $value; } echo "<br>" ;}$arr = array(1, 2, 3);//正常的定义$brr = array("one",2,3.001);//可以用各种数据类型$crr = array("one" => "1", "two" => "2", "three" => "3");//定义关联数组pri($arr);pri($brr);pri2($crr);
所以
普通数组的定义是
变量名 = array(元素,元素.....);
关联数组(键值对)的定义是
变量名 = array(键 => 值,....);
那么肯定令人疑惑的是——值怎么添加呢?
答案是
pri($arr);$arr[3] = 9;pri($arr);
好熟悉啊,是吧vector(
接下来是排序
数组排序有好几个函数
sort() -升序排序
rsort() -降序排序
asort() -根据关联数组值升序排序
arsort() -根据关联数组值降序排序
ksort() -根据关联数组键升序排序
krsort() -根据关联数组键降序排序
面向对象因为C没有涉及到,所以这里简单讲一下,但是C++提到了哈
面向对象里面有类和对象
类:就是相同属性和方法的一个集合
比如来说,食物就是一个类
饼干就是食物类的一个对象
具体到代码是这样的
<?phpclass food{ public $name; public $number; function set_name($name){ $this->name = $name; } function set_number($number){ $this->number = $number; } function get_number(){ return $this->number; }}$cook = new food();$bread = new food();$cook ->set_name("cook");$cook ->set_number(5);$bread ->set_name("bread");$bread ->set_number(2);?>
这里,我们创建了一个类(class)food
这个类里面有三个方法,set_name可以为对象指定对应的属性name
set_number为对象指定对应的属性number
get_number可以返回出对象的number属性
然后创建了俩对象,通过set_name set_number来指定属性
接着可以
echo $cook -> name."<br>";echo $cook -> get_number();
来获得饼干的名称和数量
2.29G · 2025-09-10
6.46G · 2025-09-10
6.18G · 2025-09-10