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的内容来源于菜鸟教程
链接: 菜鸟教程.
- 点赞
- 收藏
- 关注作者
评论(0)