PHP基础语法,学习完直接上手

举报
黑城笑 发表于 2022/05/09 23:15:02 2022/05/09
【摘要】 PHP 是一种创建动态交互性站点的强有力的服务器端脚本语言。 PHP 是免费的,并且使用非常广泛。同时,对于像微软 ASP 这样的竞争者来说,PHP 无疑是另一种高效率的选项。

前言

PHP 是一种创建动态交互性站点的强有力的服务器端脚本语言。

PHP 是免费的,并且使用非常广泛。同时,对于像微软 ASP 这样的竞争者来说,PHP 无疑是另一种高效率的选项。

我在学习php的同时也学习了javascript,这两种语言很像,却又大不相同,二者可互相嵌套,同时使用。

PHP起源

PHP 继承自一个老的工程,名叫 PHP/FI。PHP/FI 在 1995 年由 Rasmus Lerdorf 创建,最初只是一套简单的 Perl 脚本,用来跟踪访问他主页的人们的信息。它给这一套脚本取名为“Personal Home Page Tools”。随着更多功能需求的增加,Rasmus 写了一个更大的 C 语言的实现,它可以访问数据库,可以让用户开发简单的动态 Web 程序。Rasmus 发布了 PHP/FI 的源代码,以便每个人都可以使用它,同时大家也可以修正它的 Bug 并且改进它的源代码。

基本语法

<!DOCTYPE html>
<html>
<body>

<?php
#输出Hello World!
echo "Hello World!",PHP_EOL;
#输出Hello World!
print("Hello World!");
?>  

</body>
</html>

运行结果:
在这里插入图片描述

变量

用美元符号来$声明,PHP是弱语言无需定义变量类型,直接赋值,PHP会自动把变量转换为正确类型

<!DOCTYPE html>
<html>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<body>

<?php
$a=1;
echo $a;
?>

</body>
</html>

运行结果:
在这里插入图片描述

PHP拥有全局作用域和函数作用域,全局变量可以被除函数外任意部分访问,若想在函数中访问全局变量,需要在函数内被引用的全局变量前使用global关键字

<!DOCTYPE html>
<html>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<body>

<?php
$x=5; // 全局变量

function myTest()
{
	global $x;
    $y=10; // 局部变量
    echo "<p>测试函数内变量:<p>";
    echo "变量 x 为: $x";
    echo "<br>";
    echo "变量 y 为: $y";
} 

myTest();

echo "<p>测试函数外变量:<p>";
echo "变量 x 为: $x";
echo "<br>";
echo "变量 y 为: $y";
?> 

</body>
</html>

运行结果:
在这里插入图片描述
当一个函数完成时,它的所有变量通常都会被删除,如果我们不希望某个局部变量被删除,将使用staic

<!DOCTYPE html>
<html>
<body>

<?php
function myTest()
{
    static $x=0;
    echo $x;
    $x++;
    echo PHP_EOL;    // 换行符
}
 
myTest();
myTest();
myTest();
?> 

</body>
</html>

运行结果:
在这里插入图片描述

输出

PHP中有两种输出语句,分别是:echo和print
它们两个的区别是:

echo可以连续输出一个或多个字符串,当输出多个字符串时中间以逗号隔开,用并置运算符 (.) 把两个字符串值连接起来;没有返回值,输出速度较快
print只允许输出一个字符串,返回值为1,输出速度较慢

<!DOCTYPE html>
<html>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<body>

<?php
echo "多个","字符串",PHP_EOL;
print("一个字符串");
?> 

</body>
</html>

运行结果:
在这里插入图片描述

数据类型

String(字符串)
Integer(整型)
Float(浮点型)
Boolean(布尔型)
Array(数组)
Object(对象)
NULL(空值)
Resource(资源类型)

值得说的是Resource类型
PHP中resource类型是一种特殊变量,保存了到外部资源的引用
使用 get_resource_type() 函数可以返回资源(resource)类型:

<?php
$c = mysql_connect();
echo get_resource_type($c)."\n";
// 打印:mysql link

$fp = fopen("foo","w");
echo get_resource_type($fp)."\n";
// 打印:file

$doc = new_xmldoc("1.0");
echo get_resource_type($doc->doc)."\n";
// 打印:domxml document
?>

类型比较

PHP中有松散比较和严格比较
松散比较:==
严格比较:===
在这里插入图片描述
在这里插入图片描述

运算符

PHP算数运算符
在这里插入图片描述除了以上运算符外,PHP还于5.6版本引入求幂运算符**


PHP赋值运算符

在这里插入图片描述
PHP 递增/递减运算符
在这里插入图片描述
PHP比较运算符
在这里插入图片描述
PHP逻辑运算符
在这里插入图片描述
PHP数组运算符
在这里插入图片描述除了以上这些还有一个三元运算符,同C中的三目运算符用法一致

条件语句

PHP中的条件语句有两种:

if-else语句
switc语句

if语句

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>黑城笑</title>
</head>
<body>
<form action="" method="post">
请输入数字:
a:<input type="txt" name="a">
<input name="btn_tijiao" type="submit" value="提交" />
</ from>
<?php
if(isset($_POST["btn_tijiao"]))
{
	$a=$_POST["a"];
	if($a==1)
	{
		echo $a;
	}
	elseif($a>1)
	{
		echo "a大于1";
	}
	else
	{
		echo"a小于1";
	}
}

?> 

</body>
</html>

switch语句

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>黑城笑</title>
</head>
<body>
<form action="" method="post">

a:<input type="txt" name="a">
<input name="btn_tijiao" type="submit" value="提交" />
</ from>
<?php
if(isset($_POST["btn_tijiao"]))
{
	echo PHP_EOL;
	$a=$_POST["a"];
	switch($a)
	{
		
		case"1":
			echo"a==1";
			break;
		case"2":
			echo "a==2";
			break;
		default:
			echo"a不为1和2";
			break;
	}
	
}

?> 

</body>
</html>

数组

PHP中用array()函数创建数组

数值数组

$me=array("黑城笑","学习","PHP");
$me[3]="web";

关联数组

<!DOCTYPE html>
<html>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<body>
  
<?php
$Olympic=array("beijing"=>"2008","London"=>"2012","Rio"=>"2016");

//调用
echo "北京奥运会于".$Olympic['beijing']."年举办";
?>
  
</body>
</html>

运行结果:
在这里插入图片描述

多维数组

<!DOCTYPE html>
<html>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<body>
  
<?php
$people=array(
	array("张三","18","计算机"),
	array("李四","19","软件"),
	array("王五","20","大数据")
);
print_r($people);
?>
  
</body>
</html>

运行结果:
在这里插入图片描述

循环

while循环

<!DOCTYPE html>
<html>
<body>
  
<?php
$a=1;
while($a<=5)
{
	echo $a,PHP_EOL;
	$a++;
}
?>
  
</body>
</html>

运行结果:
在这里插入图片描述

do…while循环

先执行大括号里语句,之后再进行判断

<!DOCTYPE html>
<html>
<body>
  
<?php
$a=1;
do
{
	echo $a,PHP_EOL;
	$a++;
}while($a<=5);
?>
  
</body>
</html>

运行结果:在这里插入图片描述

for循环

<!DOCTYPE html>
<html>
<body>
  
<?php
for($i=0;$i<=5;$i++)
{
	echo $i.PHP_EOL;
}
?>
  
</body>
</html>

运行结果:
在这里插入图片描述

foreach 循环

一般用来遍历数组

<!DOCTYPE html>
<html>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<body>
  
<?php
	
$me=array("黑城笑","学习","PHP");

foreach($me as $a)
{
	echo $a;
}
?>
  
</body>
</html>

运行结果:

在这里插入图片描述

PHP函数

<!DOCTYPE html>
<html>

<body>
  
<?php
	
function echo_helloWorld(){
	echo "Hello World";
}
	
//调用函数
echo_helloWorld();
?>
  
</body>
</html>

输出结果:
在这里插入图片描述

PHP类

在PHP的类中,类成员变量的声明用var

<html xmlns="http://www.w3.org/1999/xhtml">

	<head>

	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

	<title>car</title>

	</head>

	<body>

	<?php
	//声明了一个car类
    class car 
    {
    	//成员变量
        var $color;
        var $size;
        var $weight;
        
        //类中函数
        function guadang()
        {
            echo"正在挂挡<br>";
        }

        function tingche()
        {
            echo"正在停车<br>";
        }
        
        function qidong()
        {
            echo"正在启动<br>";
        }
    }
	
	//创建对象
    $car1=new car();
    $car2=new car();

    $car1->color='black';
    $car1->size="越野车";
    $car1->weight='2000';

    $car2->color='white';
    $car2->size="轿车";
    $car2->weight='1000';

    echo"car1的颜色:",$car1->color,"<br>";
    echo"car1的车型:",$car1->size,"<br>";
    echo"car1的重量:",$car1->weight,"<br>";
    
    //调用类中函数
    $car1->guadang();
    $car1->qidong();
    $car1->tingche();
    
    echo"car2的颜色:",$car2->color,"<br>";
    echo"car2的车型:",$car2->size,"<br>";
    echo"car2的重量:",$car2->weight,"<br>";

	?>

	</table>

    </body>

</html>

运行结果:
在这里插入图片描述

构造函数

构造函数function __construct()可直接在创造对象时,为对象赋值

<html xmlns="http://www.w3.org/1999/xhtml">

	<head>

	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

	<title>car</title>

	</head>

	<body>

	<?php
    class car 
    {
        var $color;
        var $size;
        var $weight;
		
		//这里是构造函数
		function __construct( $a, $b, $c ) {
   			$this->color = $a;
   			$this->size = $b;
			$this->weight= $c;
		}
        
        function guadang()
        {
            echo"正在挂挡<br>";
        }

        function tingche()
        {
            echo"正在停车<br>";
        }
        
        function qidong()
        {
            echo"正在启动<br>";
        }
    }
	
	//使用构造函数,直接赋值
    $car1=new car("black","越野车",'2000');
    $car2=new car('white',"轿车",'1000');
		
    echo"car1的颜色:",$car1->color,"<br>";
    echo"car1的车型:",$car1->size,"<br>";
    echo"car1的重量:",$car1->weight,"<br>";

    $car1->guadang();
    $car1->qidong();
    $car1->tingche();

    echo"car2的颜色:",$car2->color,"<br>";
    echo"car2的车型:",$car2->size,"<br>";
    echo"car2的重量:",$car2->weight,"<br>";

	?>

	</table>

    </body>

</html>

运行结果:
在这里插入图片描述

析构函数

析构函数和构造函数相反,在对象结束生命周期时,系统自动执行析构函数

<!DOCTYPE html>
<html>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<body>
  
<?php
class testClass {
   function __construct() {
       print "我是构造函数\n";
   }

   function __destruct() {
       print "我现在结束了生命周期,被析构函数销毁啦\n";
   }
}

$obj = new testClass();
?>
  
</body>
</html>

运行结果:
在这里插入图片描述

继承

同C一样,PHP也拥有继承

<!DOCTYPE html>
<html>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<body>
  
<?php
	class bird{
		public function fly(){
			echo "会飞";
		}
	}
	
	class duck extends bird{
		public function swim(){
			echo"会游泳";
		}
	}
	
	$duck=new duck;
	
	echo "鸭子",$duck->fly(),$duck->swim();

?>
  
</body>
</html>

运行结果:

在这里插入图片描述

抽象类

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>黑城笑</title>
</head>
<body>

<?php
abstract class Shape{


    abstract public function cylinder_count($h,$r);

}
class cylinder extends Shape{
    
    var $s;
    public function cylinder_count($h,$r,$pi=3.14159)
    {
        $this->s=$pi*$r*$r*$h;
        echo"圆柱形的长为:".$h."<br \>";
        echo"圆柱形的半径为:".$r."<br \>";
        echo "圆柱形的面积为:".$this->s."<br>";
    }

}

$cylinder1=new cylinder();
$cylinder1->cylinder_count(10,3);
?> 



</body>
</html>

运行结果:
在这里插入图片描述


好了,以上就是关于PHP基础的所有内容啦,感谢大家的观看,求点赞求收藏求评论
欢迎大家关注我的账号:黑城笑
更多技术分享等待大家
在这里插入图片描述

部分PHP的内容来源于菜鸟教程
链接: 菜鸟教程.

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。