No.1 php入门(一)
目录
一、php是什么?
php是一种后端脚本语言,php文件可兼容HTML,CSS,JS等,具有免费,兼容性广,简单易学等优点。
二、环境配置
1、代码编译,建议使用Visual Studio Code,在拓展中添加PHP Intelephense。
2、本地服务器配置,建议使用phpstudy,官网小皮面板(phpstudy) - 让天下没有难配的服务器环境! (xp.cn),下载后打开软件开启Apache服务,在浏览器网址处输入localhost或者127.0.0.1,即可访问到本地网站,在(localhost或者127.0.0.1)后加 " / "跟文件路径即可打开指定php文件。php输出Hello World
<?php
echo "Hello World";
?>
三 、php语法
1、变量
php中变量的引用需要跟声明前缀" $ "(这跟C的习惯是有所不同的),php这种弱类型语言不必声明数据类型。
2、作用域
php中有局部和全局变量的区别,无法互通,通过关键字global可以使二者互相访问,关键字static声明静态变量可以使变量继承上一次的运算结果。
3、输出(" echo "和" print "的区别)
在许多博客或教程中有关二者区别总是说一个能同时输出多字符串,一个不行,但在我在实际测试中发现,其实二者并无区别,print只需要把输出的变量之间的" , "改成" . "即可获得一样的效果。以下是来自脚本之家的总结
4、EOF(heredoc)
自定义格式函数,但其实我感觉这个没什么用,里面只有在内嵌HTML之类的文本语言时候才有格式保留的作用,字符串效果不变。
5、print_r()和var_dump()区别(在一些ctf题型中可能会见到)
二者都是序列化函数,不同的是print_r()是简单序列化,例如能依次显示数组下标所对应的元素,var_dump是深度序列化,能递归输出元素的类型、长度,值等,适用于程序的debug。(print_r() 将把数组的指针移到最后边。使用 reset() 可让指针回到开始处。)
6、php类和对象
有C/C++基础的看下图代码片段应该就可以理解了吧
7、类型比较
在php这种弱类型语言中,松散比较" == "只比较值,例如可比较整形和字符型;严格比较" === "既比较类型又比较值还比较顺序,值得一提的是 0、false、null三者的值相等而类型不一样。(在两个数组的比较中,如果数组中元素值一样,但是先后顺序不一样,那么松散比较返回值为真,严格比较中返回值为假)
8、php常量
常量定义函数define,三个参数注意一下吧。使用常量时,不能在常量名前添加$ 符号,不然会将常量转换成新的未定义变量使用,会导致报错。
9、php运算符i++和++i的区别(这个是我不小心忘记的知识点)
总结
来利用简单php语法结合前端语言HTML写一个简单计算器吧
思路:利用HTML表单form包裹get传值到后端进行运算,为了保证前端数字不被网页刷新覆盖掉,再将后端的值重新传回前端。
代码如下
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
</head>
<?php
$num1=$_GET["num1"];
$opt=$_GET["opt"];
$num2=$_GET["num2"];
$count=$num1.$opt.$num2;
$answer=eval("return $count;");
?>
<body>
<form action="" method="get">
<label>数字1:</label><input type="number" name="num1" value="<?php echo $num1;?>">
<label>运算符:</label>
<select name="opt" id="">
<option value="+" >+</option>
<option value="-" >-</option>
<option value="*" >*</option>
<option value="/" >/</option>
</select>
<label>数字2:</label><input type="number" name="num2" value="<?php echo $num2;?>">
<label></label><input type="submit" value="计算">
</br>
<?php echo $answer; ?>
</form>
</body>
</html>
结果如图所示
一些废话
算是一些学习笔记吧,对菜鸟啦、b站上一些视频啦、别人写的博客啦,做的一些批注和解释,完全按照我自己的程度吧,希望能维持日更吧。