PHP基础入门(一)

简介: PHP基础

PHP 基础语法

php函数(危险指数五颗星)

<?php
phpinfo();
?>

变量

内部变量

<?php
header('Content-type:text/html;charset=utf-8'); // 设置编码
$name='阿杰';
$age=20;
echo '你的名字是'.$name;
echo '你的年龄是'.$age;
?>

外部变量

<html>
 <head>
 </head>
 <body>
<!-- 这一行method 对应的值改为post --->
<form action="req.php" method="post">
<input type="text" name="username"/>
<input type="password" name="pwd"/>
<input type="submit" name="提交"/>
</form>
 </body>
</html>

PHP代码调用以上HTML代码中的外部变量方法如下所示:

<?php
$u = $_POST['username'];
echo $u.'<br />';
$passwd = $_POST['pwd'];
echo $passwd.'<br />';
?>

序号 全局变量名 变量解释说明

1 $_COOKIE 得到会话控制中的cookie传值信息

2 $_SESSION 得到会话控制中的session传值信息

3 $_FILES 得到文件上传的结果

4 $_GET 得到get传值的结果

5 $_POST 得到post传值的结果

6 $_REQUEST 可以得到get的传值结果,也能得到POST传值的结果

环境变量名 变量解释说明

$_SERVER[“REQUEST_METHOD”] 请求当前PHP页面的方法

$_SERVER[“REQUEST_URI”] 请求当前PHP页面的URI

$_SERVER[“SERVER_SOFTWARE”] 用的是哪一种网站服务程序

$_SERVER[“REMOTE_ADDR”] 客户端的IP地址

$_SERVER[“SERVER_ADDR”] 当前服务器的IP地址

$_SERVER[“SCRIPT_FILENAME”] 当前请求文件的路径信息

$_SERVER[“HTTP_USER_AGENT”] 当前访问这个网址的电脑和浏览器的情况

$_SERVER[“HTTP_REFERER”] 上级来源(用户从哪个地址进入当前网页)

$_SERVER[“REQUEST_TIME”] 当前的访问时间信息

常量

<?php
define('name','阿杰');
echo '你的名字'.name;
?>

以下是一些内置的常量

常量名 变量解释说明

LINE 当前所在的行

FILE 当前文件在服务器的路径

FUNCTION 当前函数名称

CLASS 当前类名

METHOD 当前成员方法名

PHP_OS PHP运行的操作系统

PHP_VERSION 当前PHP的版本

TRAIT Trait的名字php5.4新加常量

DIR 文件所在的目录信息

NAMESPACE 当前命名空间的名称(区分大小写)

注释

// 单行注释

# 单行注释


/*

多行注释

*/

数据类型

php中有八种数据类型

四种标量数据类型

boolean(布尔类型)

integer(整形)

float/double(浮点型)

string(字符串型)

两种复合数据类型

array(数组)

object(对象)

两种特殊类型

resource(资源类型)

null(无/空白类型)

数据类型 数据类型描述

boolean(布尔类型) 布尔型是简单的数据类型,只有两个值false(假)和true(真)

string(字符串型) 字符串就是连续的字符序列,如echo“string”;

integer(整形) 整形数据类型只能包含整数,这些数据类型可以是负数或者整数

float/double(浮点型) 浮点类型用于存储数字,和整形不同的是浮点型可以有小数点

array(数组类型) 一组相同类型的集合

object(对象类型) 对象是一个实例,使用new命令创建一个对象

resource(资源型) 资源是一种特殊的变量,保存在外部资源的一个应用,资源是通过函数来进行建立的

null(空白) 特殊的值,表示变量没有值,任何变量的初始值都是null

整形

<?php
// 进制的取值范围是0-7,即0、1、2、3、4、5、6、7
$i = 01234;
// 10进制
$i = 100;
// 16进制取值范围是0-f,即0、1、2、3、4、5、6、7、8、9、a、b、c、d、e、f
$i = 0x6ff;
?>

布尔

<?php
$blue=true;
$red=false;
?>

字符串

<?php
// 单引号
$name = '阿杰';
// 双引号
$name = "阿杰";
// 多行字符
$line = <<<ABC
文字
文字
文字
ABC;
echo $line;
?>

浮点

<?php
// 普通声明
$f = 124.34525;
// 科学声明
$f = 0.423534;
var_dump($f)
?>

判断数据类型

gettype(传入一个变量)能获得变量的类型

var_dump(传入一个变量)输出变量类型和值

<?php
$f = 88.8;
$type=gettype($f);
$s = '男人习惯了不说 忍不住了就抽根烟吧';
$type = var_dump($s);
?>

判断数据类型方法:

判断函数 函数判断描述

is_int 判断是否为整数数据类型

is_bool 判断是否为布尔数据类型

is_float 判断是否是浮点数据类型

is_string 判断是否是字符串数据类型

is_array 判断是否是数组数据类型

is_object 判断是否是对象数据类型

is_null 判断数据信息是否为空

is_resource 判断是否为资源数据类型

is_scalar 判断是否为标量

is_numeric 判断是否为数值类型

is_callable 判断是否为函数

<?php
//is_*系列函数有个特点,就是如果是这个类型的返回的值为真,不是这个数据类型就返回的是假
//声明类型为假
$fo = false;
if (is_bool($fo)) {
   echo '执行真区间';
}else{
   echo '执行假区间';
}
echo "<br />";
//检查未声明的变量$p是否为空,为空就执行真区间
if(is_null($p)) {
   echo '执行真区间';
}else{
   echo '执行假区间';
}
echo "<br />";
//字符串类型的数值,检查执行的真还是假
$str = '18.8';
if(is_numeric($str)) {
   echo '执行真区间';
}else{
   echo '执行假区间';
}
echo "<br />";
//把sca的值换为整数 浮点 布尔和字符串试试
$sca = true;
if(is_scalar($sca)) {
   echo '执行真区间';
}else{
   echo '执行假区间';
}
echo "<br />";
//换成echo,is_int试试,为什么echo执行假区间呢?
if(is_callable('var_dump')) {
   echo '执行真区间';
}else{
   echo '执行假区间';
}
echo "<br />";
?>

流程控制语句

<?php
// 定义变量i为真 如果是真 输入666 否则999
$i = true;
if($i){
echo '666';
} else{
echo '999';
}
?>

算数运算方法

符号信息 说明 举例说明

+ 表示相加符号 $x+$y

- 表示相减符号 $x-$y

* 表示相乘符号 $x*$y

/ 表示相除符号 $x/$y

% 表示取余或取模符号 $x%$y

<?php
$x = 6;
$y = 7;
// 6+7=13
echo $x +$y;
?>

符号信息 说明 举例说明

$x++ 表示先赋值后累加运算  

$x-- 表示先赋值后求差运算  

++$x 表示先累加运算后赋值 $x*$y

--$x 表示先求差运算后赋值 $x/$y

<?php
$x=5;
//先赋值后做加法运算,即将$x的值赋值为$y.$x的值为5,所以将$x的值赋值为$y.$y也是5
$y=$x++;
//$x的结果输出为6,因为赋值给$y后,$x自己又把自己进行了+1操作。所以,$x结果为6
echo "$x $y";
?>

符号信息 说明

> 表示大于符号

< 表示小于符号

>= 表示大于等于符号

<= 表示小于等于符号

== 表示等于符号

!= 表示不等于符号

=== 表示全等(判断类型等于)

!== 表示全不等(判断类型不等于)

<?php
$x=5;
$y=6;
//因为5大于6不成立,所以为错的,即为false执行了假区间
if($x > $y){
   echo '变量x大于变量y 成立';
}else{
   echo '变量x大于变量y 不成立';
}
?>

程序逻辑运算符号

符号信息 说明 举例说明

逻辑与(并且关系) $x和$y都为真则返回为真 $x and $y  $x && $y

逻辑或(或者关系) $x和$y均为false为真,其它情况全为真 $x or $y  $x || $y

逻辑非 取反,即true变为false,false变为true !$x

逻辑异或 相同取false,相异为true

<?php
$x=true;
$y=false;
//逻辑与(并且),要求两个都为true才能执行真区间,所以代码中执行假区间
if($x && $y) {
   echo '执行了真区间';
}else{
   echo '执行了假区间';
}

程序位运算

符号信息 说明 举例说明

按位与And 将把$a和$b中都为1的位设为1 $a & $b

按位或Or 将把$a和$b中任何一个为1的位设为1 $a | $b

按位异或Xor 将把$a和$b中一个为1另一个为0的位设置为1 $a ^$b

按位取反Not 将把$a中为0的位设为1,反之亦然 ~$a

左移 将把$a中的位向左移$b次(每一次移动都表示乘以2) $a<$b

右移 将把$a中的位向左右$b次(每一次移动都表示乘以2) $a>$b

<?php
//$x二进制为:
$x=5;
//$y二进制为:
$y=8;
//结果为13
echo $x ^ $y;
?>

三元运算符合其它运算符

符号信息 说明

$x?真代码段:假代码段 判断是否为真假?真情况:假情况

``反引号 反引号中间插入代码,执行系统命令,等价于shell_exec函数

@ 表示抑制错误,把这一行的错误不让它显示出来了,效率低不建议用

=> 数组下标访问符

-> 对象访问符

instanceof 判断某个对象是否来自某个类,如果是的返回true,如果不是返回false

<?php
// 设x为真 如果x为真输入y 否则输出6
$x=true;
$x?$y=5:$y=6;
//输出5
echo $y;
?>
<?php
echo '<pre>';
// 反引号里执行cmd命令
echo `systeminfo`;
echo '</pre>';
?>

if多条件结构流程

<?php
If(判断语句1){
  执行语句体1
}elseif(判断语句2){
  执行语句体2
} elseif(判断语句n){
  执行语句体n
}else{
  最后的else语句可选
}
?>
<?php
$week=date("4");
//判断星期小于6,则输出:还没到周末,继续上班....
if($week<"6"){
   echo "还没到周末,继续上班....";
}
?>
<?php
//定义一个随机变量,抵达时间,随机0点至23点
$dida = rand(0,23);
echo "当前时间为 $dida 点\n";
if($dida > 6 && $dida < 10 ){
   echo '酒店去泡澡';
}elseif ($dida > 10 && $dida < 14){
   echo '吃神户牛肉';
}elseif($dida >= 19 && $dida < 22){
   echo '找个朋友聊聊内心的寂寞';
}elseif($dida > 22 && $dida <=23){
   echo '酒店去泡澡';
}elseif($dida >=1 && $dida <3){
   echo '夜店参加舞会';
}else{
   echo '睡觉或者工作中';
}
?>

if条件嵌套语句

<?php
if(判断1){
 if(判断2){
   代码段1;
}else{
   代码段2;
}
}else{
 if(判断3){
   代码段3;
}else{
   代码段4;
}
}
?>
<?php
//0表示工作秘书,1表示生活秘书
//用代码模拟随机产生当前的行程安排是生活秘书负责还是工作秘书负责
$mishu=rand(0,1);
if($mishu){
  //下雨和不下雨的状态,随机产生;下雨状态为1,不下雨状态为0
  $xiayu=rand(0,1);
  if($xiayu){
      //是否购买雨伞;购买了雨伞为1,未购买雨伞为0
      $you=rand(0,1);
      if($you){
          echo '下雨天,已经购买雨伞';
      }else{
          echo '下雨天,需要购买雨伞';
      }
  }else{
      //是否购买了防晒霜,购买了为1,未购买为0
      $you=rand(0,1);
      if($you){
          echo '未下雨,已经购买了防晒霜';
      }else{
          echo '未下雨,需要购买防晒霜';
      }
  }
}else{
  //是否准备好了会议议程,准备好了为1,未准备好为0
  $yicheng=rand(0,1);
  if($yicheng){
      echo '已准备好,可以随时出发';
  }else{
      echo '没有准备好,需要打印,延迟出发';
  }
}

switch语句使用说明

<?php
switch(变量){    //字符串,整形
  case 具体值1:
     执行代码1;
     break;
  case 具体值2:
     执行代码2;
     break;
  case 具体值3:
     执行代码3;
     break;
     defult:
}
?>
上面的break是可选的,上面的default也是可选的,不要在case后面写成分号,后面是冒号.不要在case后面写判断区间,如($foo >20 或者 $foo == 30)
Switch里面的变量最好是整形 字符串 因为布尔判断更适合if..else.
<?php
//定义出行工具
$tool=rand(1,6);
switch($tool){
   case 1:
       echo '司机开车';
       break;
   case 2:
       echo '民航';
       break;
   case 3:
       echo '自己家的专机';
       break;
   case 4:
       echo '火车动车';
       break;
   case 5:
       echo '骑马';
       break;
   case 6:
       echo '游轮';
       break;
}

while循环语句说明

<?php
//定义需要往返的次数,老外喜欢从0开始计数,所以系统也是从0开始
$count=0;
//while后面接布尔值判断,为真执行,为假停止
//$count小于100的时候执行,也就是$count为0至99的时候执行.
//如果$count不小于100了,循环停止执行后续的代码
//循环开始处
while($count < 100){
   echo "这是王总第 $count 次出差 <br />";
   //每次执行让$count+1,这样的话,就不会产生$count永远小于100的情况了
   $count++;
}
//循环结束
?>
do..while与while区别
do..while与while的语法结构基本一样,也是一个布尔型循环,功能也基本一样.
基本语法规定如下:
do{
  //代码框
}while(判断)
do…while与while区别是,它们的值得检查时机不同.
do…while不论while判断是否成立,先执行一次代码框循环语句,保证会执行一次(表达式的真值在每次循环结束后检查)
然而我们之前的while循环会检查布尔判断区域,成立则执行,不成立则不执行.
<?php
$i=0;
do {
 echo $i;
}while($i >0);
?>

for循环语句说明

for(表达式1;表达式2;表达式3)
 需要执行的代码段;
}
<?php
for($i=1;$i<=10;$i++)
 echo ‘分手后第’.$i.’年, 我全都忘了你的样子<br />’;
}?>

for循环遍历索引数组

<?php
//声明一个数组,值为1到10
$num = array(1,2,3,4,5,6,7,8,9,10);
//按照索引数组的特点,下标从0开始。所以1的下标为0,10的下标为9
echo $num[0].'<br />';
echo $num[9].'<br />';
//我们可以得到数组中元素的总个数,为10
echo count($num) .'<br />';
//遍历这个索引数组的话,我们就可以定义一个变量为$i
//$i 的值为0,从0开始
//可以设定一个循环条件为:$i 在下标的(9)最大值之内循环
for($i = 0 ; $i < count($num) ; $i++){
  echo $num[10].'<br />';
?>

常用操作数组函数

函数信息 说明

array_shift 弹出数组中的第一个元素

array_unshift 在数组的开始处压入元素

array_push 向数组的末尾处压入元素

array_pop 弹出数组末尾的最后一个元素

current 读出指针当前位置的值

key 读出指针当前位置的键

next 指针向下移

prev 向上移

reset 指针到开始处

end 指针到结束处

这些函数,也是面试中基础面试中最爱问到的问题。

序号 函数信息 说明 实例

1 array_combine() 生成一个数组,用一个数组的值作为键名,另一个数组值作为值  

2 range() 创建并返回一个包含指定范围的元素的数组。  

3 compact() 创建一个由参数所带变量组成的数组  

4 array_fill() 用给定的值生成数组  

5 array_chunk() 把一个数组分割为新的数组块  

6 array_merge() 把两个或多个数组合并为一个数组  

array_slice() 在数组中根据条件取出一段值,并返回  

array_diff() 返回两个数组的差集数组  

array_search() 在数组中搜索给定的值,如果成功则返回相应的键名  

array_splice() 把数组中的一部分去掉并用其它值取代  

array_sum() 计算数组中所有值的和  

in_array() 检查数组中是否存在某个值  

array_key_exists() 检查给定的键名或索引是否存在于数组中  

shuffle() 将数组打乱,保留键值  

count() 计算数组中的单元数目或对象中的属性个数  

array_flip() 返回一个键值反转后的数组  

array_keys() 返回数组所有的键,组成一个数组  

array_values() 返回数组中所有值,组成一个数组  

array_reverse() 返回一个元素顺序相反的数组  

array_count_values() 统计数组中所有的值出现的次数  

array_rand() 从数组中随机抽取一个或多个元素,注意是键名  

array_unique() 删除重复值,返回剩余数组  

sort() 按升序对给定数组的值排序,不保留键名  

rsort() 对数组逆向排序,不保留键名  

asort() 对数组排序,保持索引关系  

arsort() 对数组逆向排序,保持索引关系  

ksort() 按键名对数组排序  

krsort() 将数组按照键逆向排序  

natsort() 用自然顺序算法对数组中的元素排序  

natcasesort() 自然排序,不区分大小写  

array_filter() 去掉数组中的空元素或者预定元素  

extract 将键变为变量名,将值变为变量值

功能:弹出数组中的第一个元素

<?php
$mingren = array("邓超", "黄晓明", "宁泽涛", "钟汉良");
$dc = array_shift($mingren);
echo $dc .'<br />';
print_r($mingren);
?>

goto循环语句

<?php
goto wan;
echo '天王盖地虎';
wan:
echo '小鸡炖蘑菇';
?>
<?php
for ($i=0;$i<100;$i++){
   echo '第'.$i.'每周往返北京大连<br />';
   if($i == 17){
       goto end;
  }
}
end:
echo '集团公司要求停止此项';
?>


相关文章
|
3月前
|
安全 关系型数据库 MySQL
PHP与MySQL交互:从入门到实践
【9月更文挑战第20天】在数字时代的浪潮中,掌握PHP与MySQL的互动成为了开发动态网站和应用程序的关键。本文将通过简明的语言和实例,引导你理解PHP如何与MySQL数据库进行对话,开启你的编程之旅。我们将从连接数据库开始,逐步深入到执行查询、处理结果,以及应对常见的挑战。无论你是初学者还是希望提升技能的开发者,这篇文章都将为你提供实用的知识和技巧。让我们一起探索PHP与MySQL交互的世界,解锁数据的力量!
|
3月前
|
PHP 开发者
PHP中的面向对象编程:从入门到精通
【9月更文挑战第27天】在这篇文章中,我们将一起探索PHP中的面向对象编程(OOP)的美妙世界。我们将从基础的概念和语法开始,然后深入到更高级的主题,如继承、多态和封装。无论你是PHP新手还是有经验的开发者,这篇文章都将为你提供有价值的见解和技巧。让我们一起踏上这段旅程,发现PHP OOP的强大功能吧!
42 8
|
20天前
|
Java 程序员 PHP
01 入门PHP就来我这-安装phpstudy
路老师的PHP入门教程,带你从零开始学习PHP。首先下载并安装phpStudy,接着配置域名和端口,最后创建并运行第一个PHP文件。内容详实,适合初学者。
39 3
01 入门PHP就来我这-安装phpstudy
|
17天前
|
安全 关系型数据库 PHP
探索PHP:从入门到精通
【10月更文挑战第38天】在这篇文章中,我们将一起踏上PHP的探索之旅。无论你是初学者还是有经验的开发者,这篇文章都将为你提供有价值的信息和技巧。我们将从PHP的基础开始,逐步深入到更复杂的主题,包括面向对象编程、数据库操作、安全性问题等。最后,我们将通过一些实用的代码示例,来展示PHP的强大功能和灵活性。让我们一起开始这段旅程吧!
10 2
|
20天前
|
存储 Serverless PHP
PHP编程入门:从基础到实战
【10月更文挑战第35天】本文将带你走进PHP的世界,从最基本的语法开始,逐步深入到实际应用。我们将通过简单易懂的语言和实际代码示例,让你快速掌握PHP编程的基础知识。无论你是初学者还是有一定经验的开发者,都能在这篇文章中找到你需要的内容。让我们一起探索PHP的魅力吧!
|
2月前
|
PHP 开发者
PHP中的异常处理:从入门到精通####
本文将深入浅出地探讨PHP中的异常处理机制,包括异常的基本概念、如何抛出与捕获异常、自定义异常类以及最佳实践。无论你是PHP新手还是经验丰富的开发者,都能从中学到实用的知识,帮助你编写更健壮的代码。 --- ####
|
26天前
|
自然语言处理 关系型数据库 MySQL
PHP编程入门:构建你的第一个网页应用
【10月更文挑战第29天】本文旨在引导初学者步入PHP编程的世界,通过深入浅出的方式介绍PHP的基础知识,并指导读者如何动手实践,搭建一个简单的网页应用。文章不仅涉及PHP代码的编写,还包括了环境配置、项目结构设计以及前后端交互的基本概念。适合对Web开发感兴趣且希望快速入门的朋友阅读。
40 0
|
3月前
|
前端开发 PHP 数据库
PHP编程入门:从基础到实战
【9月更文挑战第23天】本文将引导你进入PHP编程的世界,从基础知识到实际项目应用,逐步深入。我们将一起探索PHP的基本语法、常用函数和框架使用,以及如何在实际项目中运用PHP进行开发。无论你是初学者还是有一定经验的开发者,这篇文章都将为你提供有价值的参考和启示。让我们一起踏上PHP编程的学习之旅吧!
|
3月前
|
SQL 安全 Java
PHP编程之美:从入门到精通
【9月更文挑战第18天】在这篇文章中,我们将一起探索PHP编程语言的魅力和力量。无论你是初学者还是有经验的开发者,这篇文章都将为你提供有价值的见解和技巧。我们将从PHP的基本概念开始,然后深入到更复杂的主题,如面向对象编程、数据库交互和安全性等。最后,我们将通过一些实用的代码示例来巩固我们的知识。让我们一起开始这段旅程吧!
40 4
|
3月前
|
PHP 开发者
PHP中的面向对象编程:从入门到实践
本文将通过浅显易懂的语言和实例,引导读者从零开始了解PHP中的面向对象编程(OOP),并逐步深入探讨其核心概念。无论您是PHP初学者还是希望巩固基础的开发者,这篇文章都能帮助您掌握OOP的基本知识和应用。
35 1