PHP基础知识详细讲解
目录
- 一、简介
- 二、php基本语法
- 三、变量和作用域
- 四、常量
- 五、数据类型
- 六、运算符
- 七、流程控制
- 八、超全局变量
一、简介
基础知识:
需要一定的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);// 调试函数,没有返回值?>
三、变量和作用域
<?phpfunction 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; 函数外不能访问局部变量。
<?phpfunction 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 $nameEOT;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" }
对象
<?phpclass 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 用户密码 $passwordETO;echo $message;?>
到此这篇关于PHP基础知识详细讲解的文章就介绍到这了,更多相关PHP基础知识内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!