[PHP基础] 安装环境phpstudy、变量赋值、变量类型、预定义常量、运算符

PHP概述

  • PHP的语法借鉴吸收了c语言、Java和Perl等流行计算机语言的特点,易于一般程序员学习。
  • PHP的主要目标是允许网络开发人员快速编写动态页面。
  • 简单点说PHP主要被用于开发各种类型的网站程序。
  • 细化点说PHP可以用于收集表单数据,生成动态网页,字符串处理,动态输出图像,处理服务器端文件,与数据库交互,会话跟踪,处理XML。文件支持大量的网络协议,服务器端的其他相关操作!
  • PHP是脚本语言不需要事先编译(可以与HTML进行混编,脚本后缀依然是.php),在服务器端运行!
  • PHP可以运行在windows,Linux等各种操作系统上!需要环境支持

什么是phpstudy?

搭建WAMP环境(Windows下的PHP环境)
phpstudy是php环境一键安装包!方便好用!
下载phpstudy 2016 https://www.xp.cn/wenda/407.html

phpStudy 2016版本程序包集成最新的Apache+Nginx+LightTPD+PHP+MySQL+phpMyAdmin+Zend Optimizer+Zend Loader,一次性安装,无须配置即可使用,是非常方便、好用的PHP调试环境。该程序绿色小巧简易迷你仅有32M,有专门的控制面板。总之学习PHP只需一个包。对学习PHP的新手来说,WINDOWS下环境配置是一件很困难的事;对老手来说也是一件烦琐的事。因此无论你是新手还是老手,该程序包都是一个不错的选择。

注意:安装完成之后会提示你需要32位vc9的运行库,因为php5.3、5.4和apache都是用vc9编译,电脑必须安装vc9运行库才能运行。
下载vc9运行库 http://www.winwin7.com/soft/xtbd-7506.html

ok,打开phpstudy启动查看
在这里插入图片描述
相应的端口已经开放
在这里插入图片描述
网页可以正常访问
在这里插入图片描述

phpstudy的目录

http服务
E:\phpStudy\WWW:存放所有的网页

  • phpMyAdmin:管理数据库的可视化面板
  • l.php:探针
  • phpinfo.php

E:\phpStudy\php\php-5.4.45\php.ini:php的配置文件
E:\phpStudy\MySQL\my.ini:mysql的配置文件
mysql的初始用户名和密码是root/root
命令行登录mysql:mysql -uroot -proot
E:\phpStudy\Apache\conf\httpd.conf:apache的配置文件
E:\phpStudy\Apache\logs:apache的日志

PHP基本语法

  • PHP语言标记
开始标记 <?php
结束标记	?>

1、<?php ?>这之间就表示进入PHP模式,在开始和结束标记之外的内容都会被PHP解析器忽略。
2、可以直接嵌入到html代码中,并且可以嵌入到html代码中的任何地方。
3、在一个html文档中可以嵌入任意多个PHP标记!
4、文件末尾的PHP代码段结束标记可以不要,在一些情况下省略掉更好!

在这里插入图片描述

  • 有两种在浏览器输出文本的基础指令:echo 和 print。

echo - 可以输出一个或多个字符串,用逗号隔开
print - 只允许输出一个字符串,返回值总为 1
提示:echo 输出的速度比 print 快, echo 没有返回值,print有返回值1。

<?php
echo "This is php";
echo "<br/>";
echo "<span style='color:red;background-color:pink;'>Hello</span>";//可以输出html标签
?>

在这里插入图片描述
在这里插入图片描述

  • 指令分隔符[;]

1、PHP用分号表示一句话的结束。
2、结束标记?>就隐含了一个分号,所以PHP代码最后一行可以不用加分号!

  • 注释
/*
这是一个多行注释
*/
//这是一个单行注释

注意:PHP代码中的注释,不会显示在浏览器的源代码中
PHP 运行环境是服务器,我们浏览器端看到的是PHP 引擎运行PHP代码后的执行结果!
HTML 的运行环境是浏览器,所以能看到。

变量

变量是用于临时存储值的容器。
PHP脚本语言是一种弱类型的语言,和其他语言不同的是变量或者常量的数据类型由程序的上下文决定

  • 命名规则

变量以 $ 符号开始,后面跟着变量的名称
变量名必须以字母或者下划线字符开始
变量名只能包含字母数字字符以及下划线(A-z、0-9 和 _ )
变量名不能包含空格
变量名是区分大小写的($y 和 $Y 是两个不同的变量)
不要用PHP关键字命名

  • 变量的声明

PHP 的特性之一就是它不要求在使用变量之前声明变量,但是需要初始化—>(当第一次给一个变量赋值时,你才创建了这个变量)。变量用于存储值比如数字、文本字符串或者数组。一旦设置了某个变量,我们就可以在脚本中重复的使用它。
PHP中变量必须使用美元符号$ 后面跟着变量名来表示,使用赋值操作符(=)给一个变量赋值。

echo $name;//没有初始化,会报错
$name = "BOb";
echo $name;

在这里插入图片描述

  • 变量的释放unset()
<?php
echo $name;//没有初始化,会报错
$name = "BOb";
echo $name;
echo "<hr />";
unset($name);//释放变量
echo $name;
?>

在这里插入图片描述

  • 可变变量
<?php
$name = "BOb";
$$name = "Alice";
echo $name;
echo "<br />";
echo $$name;
echo "<br />";
echo $BOb;
?>

在这里插入图片描述

  • 变量的引用赋值&
<?php
$a = 10;
$b = $a;//常规赋值
$b = $b+1;
echo $a;
echo "|";
echo $b;

echo "<br />";

$c = &$a;//引用赋值
$c = $c+1;
echo $a;
echo "|";
echo $c;
?>

在这里插入图片描述

变量类型
  • 布尔类型:true/false
<?php
$man = true;
$woman = false;
echo $man;
echo "|";
echo $woman;//echo输出false的时候,输出空白
echo "<br />";
var_dump($man);//输出变量的类型和值 
var_dump($woman);
?>

在这里插入图片描述

以下内容会被当作false,其他均会被认为true
1、布尔值false
2、0
3、浮点型0.0
4、空白字符串和字符串0
5、没有成员的空数组
6、NULL

  • int型(整型):存储整数
  • float(浮点型):存储小数
  • string(字符串)

1、单引号’‘引起来:单引号定义的字符串里面含有单引号时需要转义[\’],单引号中无法引用变量$ (不起作用)

2、双引号""引起来:双引号可以包含单引号,可以引用变量$ (开始),但是无法识别结尾,所以要用大括号{}将变量括起来,双引号中想输出$字符的话,需要转义\$
前面两种输出各种特殊字符都需要转义
3、定界符<<<:<<<之后提供一个标识符(字母数字下划线,不能以数字开头)开始,然后中间输入字符串的内容,最后以同样的标识符结束,结束标识符后必须加;不可以接其它字符串

<?php
$name = "php";
echo $str = 'Hello,$name,let\'s go!';
echo "<br/>";
echo $strr = "Hello,{$name},let's go!";
?>

在这里插入图片描述

<?php 
echo $str = <<<text
sdadasjajdkajhf$%^&***\\\\!!!>>><<<<<
text;
?>

在这里插入图片描述

  • 数组(复合数据类型)

数组是一个能在单个变量中存储多个值的特殊变量。
在 PHP 中,有三种类型的数组:
数值数组 - 带有数字 ID 键的数组
关联数组 - 带有指定的键的数组,每个键关联一个值
多维数组 - 包含一个或多个数组的数组

array() 函数用于创建数组:

两种数值数组的创建方式:

<!--第一种:自动分配 ID 键(ID 键总是从 0 开始):-->
<?php
$array = array("Hanhan",20,true);
print_r($array);//输出数组的值
var_dump($array);//输出类型以及值
?>
<!--第二种:人工分配 ID 键:-->
<?php
$array[0] = "haha";
$array[1] = 20;
$array[2] = false;
var_dump($array);
?>

在这里插入图片描述
在这里插入图片描述

count() 函数:用来获取数组的长度
<?php
$cars = array("Volvo","BMW","Toyota");
echo count($cars);//3
?>

两种关联数组的创建方式:

<?php
$bge=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");

$age['Peter']="35";
$age['Ben']="37";
$age['Joe']="43";
?>

可以使用foreach循环遍历关联数组:

<?php
$age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");
 
foreach($age as $x=>$x_value)
{
    echo "Key=" . $x . ", Value=" . $x_value;
    echo "<br>";
}
?>

在这里插入图片描述
多维数组的创建:

<?php
// 二维数组:
$cars = array
(
    array("Volvo",100,96),
    array("BMW",60,59),
    array("Toyota",110,100)
);
print("<pre>");//格式化输出数组
print_r($cars);
print("<pre>");//格式化输出数组
?>

在这里插入图片描述
遍历二维数组并将结果输出到表格中:

<?php
header("content-type:text/html;charset='utf-8'");
// 二维数组:
$cars = array
(
    array("Volvo",100,96000),
    array("BMW",60,59000),
    array("Toyota",110,100000)
);
?>
<table border="1">
 <tr>
  <td>name</td>
  <td>size</td>
  <td>price</td>
 </tr>
 <?php foreach($cars as $car){                ?>
 <tr>
  <td><?php echo $car[0]?></td>
  <td><?php echo $car[1]?></td>
  <td><?php echo $car[2]?></td>
 </tr>
 <?php }?>
</table>

在这里插入图片描述

预定义超全局数组变量

PHP定义好了的,可以直接使用,函数内外都可以用

名称作用
$GLOBALS用来存放全局变量的数组
$_SERVER一个包含了诸如头信息(header)路径(path)、以及脚本位置(script locations)等信息的数组
$_GET通过url参数传递给当前脚本的变量的数组(获得get方式提交的参数)
$_POST当http post请求的Content-Type 是 application/x-www-form-urlencoded 或 multipart/form-data时,会将变量以关联数组的形式传入当前的脚本
$_FILES通过http post 方式上传到当前脚本的项目的数组(文件上传信息)
$_COOKIE通过http cookies 方式传递给当前的脚本的变量的数组
$_SESSION当前脚本可用SESSION的数组
$_REQUEST默认情况下包含了 $_GET $_POST 和 $_COOKIE的数组
$_ENV通过环境方式传递给当前脚本的变量的数组
isset()函数

作用:判断变量是否被定义,返回值为布尔类型

上传文件

<html>
 <meta charset="utf-8">
 <h1>欢迎登录</h1>
 <form action="" method="post" enctype="multipart/form-data">
   上传文件:<input type="file" name="userFileUp">
  <input type="submit" name="userSubmit" value="提交">
 </form> 
</html>
<br/>
<pre/>
<?php
 header("content-type:text/html;charset=utf-8");
 if(isset($_POST["userSubmit"])){//判断是否是用户通过表单提交的
  var_dump($_FILES);  
 }
?>

在这里插入图片描述

move_uploaded_file()函数

将文件移动到指定文件夹,返回值为布尔类型

进一步优化,我们发现文件上传后在目录里面找不到,因为是个缓存很快就消失了

<html>
 <meta charset="utf-8">
 <h1>欢迎登录</h1>
 <form action="" method="post" enctype="multipart/form-data">
  <!-- 用户名:<input type="text" name="userName"> <br/>
  密码:<input type="password" name="userPasswd"><br/> -->
  上传文件:<input type="file" name="userFileUp">
  <input type="submit" name="userSubmit" value="提交">
 </form> 
</html>
<br/>
<pre/>
<?php
 header("content-type:text/html;charset=utf-8");
 if(isset($_POST["userSubmit"])){
  $tmp = $_FILES["userFileUp"]["tmp_name"];//缓存目录
  $path = __DIR__."\\".$_FILES['userFileUp']['name'];//当前目录的路径
  echo $path;//文件保存的路径
  move_uploaded_file($tmp,$path);  
 }
?>

在这里插入图片描述

变量的作用域

变量的作用域是脚本中变量可被引用/使用的部分。PHP 有四种不同的变量作用域:
local
global
static
parameter

  • 局部变量:在函数内部定义的变量,只能在函数内部访问
  • 全局变量:在所有函数外部定义的变量,除了函数外,全局变量可以被任何脚本中的任何部分访问

要想在函数中访问全局变量,需要用到global关键字声明,或者传参

<?php
header("Content-Type: text/html;charset=utf-8");//防止中文乱码
$x = 5;//全局变量

function myTest(){
	global $x;//先声明
	$y = 10;//局部变量
	echo "变量x为:$x";
	echo "<br/>";
	echo "变量y为:$y";

}

myTest();
?>

在这里插入图片描述

PHP 将所有全局变量存储在一个名为 $GLOBALS[index] 的数组中。 index 保存变量的名称。这个数组可以在函数内部访问,也可以直接用来更新全局变量。

上面的程序可以改成这样:

<?php
header("Content-Type: text/html;charset=utf-8");
$x = 5;//全局变量
function myTest(){

 $y = 10;//局部变量
 echo "变量x为:".$GLOBALS['x'];
 echo "<br/>";
 echo "变量y为:$y";
}
myTest();
?>
  • 静态变量:在函数内部定义,并用static修饰符修饰,仅在函数初次执行时被初始化!

当一个函数完成时,它的所有变量通常都会被删除。然而,有时候您希望某个局部变量不要被删除。要做到这一点,请在您第一次声明变量时使用 static 关键字:

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

注意:每次调用该函数时,该变量将会保留着函数前一次被调用时的值。该变量仍然是函数的局部变量。
在这里插入图片描述

  • 参数的传递

按值传递参数(默认方式):对形参的操作不会对实参产生影响

<?php
function myTest($x)
{
   echo ++$x;
   echo "<br/>";
}
$a = 5; 
myTest($a);
echo $a;
?>

在这里插入图片描述

按引用传递参数:相当于给实参起了个别名,对形参的操作会对实参产生影响

<?php
function myTest(&$x)//引用传参
{
   echo ++$x;
   echo "<br/>";
}
$a = 5; 
myTest($a);
echo $a;
?>

在这里插入图片描述

默认传参:如果没有给函数传递参数,就取默认值;传了就按照传的值

<?php
function myTest($x = 1,$y = 2)
{
   echo ++$x."<br/>".(++$y);
   echo "<br/>";
} 
myTest(5,10);
myTest()
?>

在这里插入图片描述

可变长度参数列表:PHP内置函数
func_get_args():获取传递参数列表,并以数组的形式返回
func_get_arg():根据参数偏移量,从零开始计数,获取参数列表
func_num_args():返回传递参数的个数

<?php
function myTest()
{
   echo func_get_arg(1)."<br>";//偏移量是从0开始的
   $arry = func_get_args();//返回数组
   for($i = 0;$i < func_num_args();$i++){//遍历数组
    echo $arry[$i]."<br/>";
   }
   echo func_num_args();//查看个数
} 
myTest(5,10);//不会报错
?>

在这里插入图片描述

常量

定义define(常量名,值)

<?php
define("NAME","Bob");
var_dump(NAME);
?>

在这里插入图片描述

  • 预定义常量

__FILE__:当前文件的文件名(带路径)
__LINE__:当前的行数
__FUNCTION__:当前的函数名
__CLASS__:当前的类名
__METHOD__:当前对象的方法名
PHP_OS:UNIX或WINNT等
PHP_VERSION:当前PHP服务器的版本
DIRECTORY_SEPARATOR:根据当前操作系统获取目录的分隔符,Windows:\,Linux:/

  • 常量的作用域是超全局的,哪里都能调用!
运算符
  • 算数运算符
运算符名称描述实例结果
$x + $yx 和 y 的和2 + 24
$x - $yx 和 y 的差5 - 23
$x * $yx 和 y 的积5 * 210
$x / $yx 和 y 的商15 / 53
$x % $y模(除法的余数)x 除以 y 的余数5 % 21
- $x取反x 取反在这里插入图片描述2
$a . $b并置连接两个字符串“Hi” . “Ha”HiHa
++$a前加自增1,然后返回在这里插入图片描述在这里插入图片描述
$a++后加先返回,再自增在这里插入图片描述在这里插入图片描述
–$a前减先自减1,再返回在这里插入图片描述在这里插入图片描述
$a–后减先返回,再自减1在这里插入图片描述在这里插入图片描述
  • 逻辑运算符
运算符名称描述
x and y如果 x 和 y 都为 true,则返回 true
x or y如果 x 和 y 至少有一个为 true,则返回 true
x xor y异或如果 x 和 y 有且仅有一个为 true,则返回 true
x && y如果 x 和 y 都为 true,则返回 true
在这里插入图片描述如果 x 和 y 至少有一个为 true,则返回 true
! x如果 x 不为 true,则返回 true
  • 比较运算符
运算符名称描述
x == y等于如果 x 等于 y,则返回 true
x === y绝对等于如果 x 等于 y,且它们类型相同,则返回 true
x != y不等于如果 x 不等于 y,则返回 true
x <> y不等于如果 x 不等于 y,则返回 true
x !== y绝对不等于如果 x 不等于 y,或它们类型不相同,则返回 true
x > y大于如果 x 大于 y,则返回 true
x < y小于如果 x 小于 y,则返回 true
x >= y大于等于如果 x 大于或者等于 y,则返回 true
x <= y小于等于如果 x 小于或者等于 y,则返回 true
  • 运算符优先级:由高到低排列
运算符描述
!逻辑运算符
* / %算术运算符
+ – .算术运算符和字符串运算符
&&逻辑运算符
在这里插入图片描述逻辑运算符
? :三元运算符
= += -= *= /= .= %=赋值运算符
and逻辑运算符
xor逻辑运算符
or逻辑运算符
,多处用到

PHP语法错误

  • Error:结束脚本执行
  • Warning:只提示,不影响执行
  • Notice:只提示,不影响执行
    在这里插入图片描述
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值