PHP基础教程详解

   今天开始总结PHP,在这里做下笔录,方便ppt教程素材,顺便供大家学习参考

 

【前言】

   学之前看到一篇关于PHP初学者建议的文章,这里分享下

   适用于PHP初学者的学习线路和建议:http://www.runoob.com/w3cnote/php-learning-recommend.html

   PHP开发工具推荐:http://www.runoob.com/w3cnote/php-develop-tools.html

   PHP在线工具:http://www.runoob.com/try/runcode.php?filename=demo_intro&type=php

   PHP官网:http://www.php.net

 

【简介】

      PHP全称:Hypertext Preprocessor即:"超文本预处理器",是一种通用开源脚本语言,当前最流行的网站开发语言。脚本原因是解释型语言,因为PHP是解析型语言,所以每次运行都会比编译型语言多出“编译”这个步骤。

      拓展:解释型语言和编译型语言区别

      编译型语言会在运行之前针对具体平台将代码编译链接成可执行的机器码;解析型语言直到运行时才逐行编译执行。

 

【PHP概论】

(1)什么是PHP?

(2)PHP能做什么?

(3)为什么使用PHP?

(4) PHP语言结构?

(5)PHP优缺点?

具体我在后面文章初识PHP里做了总结

 

【目录】

(1)环境安装;

(2)语法;

(3)变量;

(4)输出方式;

(5)数据类型;

(6)字符串函数;

(7)常量;

(8)运算符;

(9)条件语句;

(10)循环;

(11)函数;

(12)数组;

(13)数组排序;

(14)全局变量--超全局变量;

 

 

【PHP入门】

(1)环境安装

   为了开始使用PHP,需要满足几个条件:    

①支持 PHP 和 MySQL 的 Web 主机    

②安装Web 服务器,PHP,数据库(比如 MySQL)   

安装方式主要有两种:(1)自行配置;(2)PHP 服务器组件 / 组合包;

   具体我在后面文章Windows下安装PHP开发环境里做了总结

   拓展

   (一)IDE (Integrated Development Environment,集成开发环境)

   IDE:用于提供程序开发环境的应用程序,一般包括代码编辑器、编译器、调试器和图形用户界面等工具。集成了代码编写功能、分析功能、编译功能、调试功能等一体化的开发软件服务套。所有具备这一特性的软件或者软件套(组)都可以叫集成开发环境。IDE多被用于开发HTML应用软件。例如,许多人在设计网站时使用IDE(如HomeSite、DreamWeaver、WebStorm等),因为很多项任务会自动生成

    (二)PHP执行过程

   通俗理解:浏览器找到服务器apache,因为是.php 结尾,所以把脚本程序会发送给PHP处理程序来处理。

PHP处理程序接受脚本文件后查看是否有数据库连接操作,若有则跟后端数据库交互,之后返回HTM语言,再返回给浏览器呈现出来

   注意:PHP 脚本在服务器上执行,然后将纯 HTML 结果发送回浏览器

 

(2)PHP语法

   ①PHP 脚本可以放在文档中的任何位置,以 <?php 开始,以 ?> 结束

<?php
// PHP 代码
?>

   ②每个代码行都必须以分号结束。分号是一种分隔符,用于把指令集区分开来

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

   ④注释:单行注释和多行注释

<?php
// 这是 PHP 单行注释

/*
这是 PHP 多行
注释
*/
?>

 
 (3)PHP变量

  注意:PHP语句和变量都区分大小写

  变量是用于存储信息的"容器"

<?php
$a = 5;$b = 6;$z = $a + $b;
echo $z;
print $b;
?>

  类似代数:

x=5
y=6
z=x+y

   在 PHP 中,这三个字母被称为变量。在代数中我们使用字母(比如 x)来保存值(比如 5)。从上面的表达式 z=x+y,我们能够计算出 z 的值是 11

【内容列表】

  1. PHP变量规则

  2. 创建 / 声明变量

  3. 弱类型语言

  4. 变量作用域

  5. 作用域

  ①局部和全局作用域;②global关键字;③Static 作用域;④参数作用域

具体我在后面文章PHP变量与作用域里做了总结

 

(4)PHP输出方式

   两种基本输出方式:print和echo

   echo 和 print 区别:

                              1、echo 可以输出一个或多个字符串;

                              2、print 只允许输出一个字符串,返回值总为 1;

                              3、echo 输出的速度比 print 快;

                              4、echo 没有返回值,print 有返回值 1;

  提示:echo 输出的速度比 print 快, echo 没有返回值,print有返回值1

   ①PHP的echo语句

echo 是一个语言结构,使用的时候可以不用加括号,也可以加上括号: echo 或 echo()

使用 echo 命令输出变量和字符串:

<?php
$txt1="学习 PHP";
$txt2="PHP学习站";
$cars=array("Volvo","BMW","Toyota");
echo $txt1;
echo "<br>";
echo "在 $txt2","学习","PHP ";
echo "<br>";
echo "我车的品牌是 {$cars[0]}";
?>
   ②PHP的print语句

print 同样是一个语言结构,可以使用括号,也可以不使用括号: print 或 print()

使用 print 命令输出变量和字符串:

<?php
$txt1="学习 PHP";
$txt2="PHP学习站";
$cars=array("Volvo","BMW","Toyota");
print $txt1;
print "<br>";
print "在 $txt2 学习 PHP ";
print "<br>";
print "我车的品牌是 {$cars[0]}";
?>
 

(5)数据类型

        var_dump() 会返回变量的数据类型和值

        字符串、整数、浮点数、布尔值、数组、对象、null

   ①字符串

字符串是字符序列,比如 "Hello world!",字符串可以是引号内的任何文本

   ②整数

整数是没有小数的数字,测试不同的数字,var_dump() 会返回变量的数据类型和值

    可以用三种格式规定整数:十进制、十六进制(前缀是 0x,例0x8C)或八进制(前缀是 0,例047)

<?php
$a = 2;
var_dump($a);//整数型
echo"<br>";
$b = 2.2;
var_dump($b);//浮点型
echo"<br>";
$c = "a";
var_dump($c);//字符串
?>

   ③浮点数是有小数点或指数形式的数字

   ④布尔值true 或 false常用于条件测试

   ⑤数组array

声明数组:

$array = array(1,2,3,"1","2","3");
var_dump($array);
var_dump会输出数据类型和值,浏览器输出array(6) { [0]=> int(1) [1]=> int(2) [2]=> int(3) [3]=> string(1) "1" [4]=> string(1) "2" [5]=> string(1) "3" }

   ⑥对象

对象是存储数据和有关如何处理数据的信息的数据类型。

在 PHP 中,必须明确地声明对象。首先必须声明对象的类。对此,使用 class 关键词。类是包含属性和方法的结构。然后在对象类中定义数据类型,之后在该类的实例中使用此数据类型

   具体我在后面再作总结

   ⑦null

特殊的null值表示变量无值。null是数据类型 NULL 唯一可能的值。

null值标示变量是否为空。也用于区分空字符串与空值数据库。可以通过把值设置为null,将变量清空

<?php
$x="Hello world!";
$x=null;
var_dump($x);
?>
 

(6)字符串函数

   ①strlen() 函数返回字符串的长度,以字符计

   注意:strlen() 常用于循环和其他函数,在确定字符串何时结束很重要(例如,在循环中,我们也许需要在字符串的最后一个字符之后停止循环)

   ②PHP 并置运算符

在 PHP 中,只有一个字符串运算符--并置运算符

并置运算符 (.) 用于把两个字符串值连接起来,接下来演示如何将两个字符串变量连接在一起:

<?php
$a = "第一";
$b = "第二";
echo $a."空格".$b;
?>

   ③strpos() 函数用于检索字符串内指定的字符或文本

如果找到匹配,则会返回首个匹配的字符位置;如果未找到匹配,则将返回false

   注意:字符串中首字符的位置是 0 而不是 1

   例如:检索字符串 "Hello world!" 中的文本 "world"

<?php
echo strpos("Hello world!","world");//输出6
?>
完整的字符串函数参考手册,请访问 PHP String 参考手册

 

 

(7)常量

常量是一个简单值的标识符,该值在脚本中不能改变

通常由英文字母、下划线、和数字组成,但数字不能作为首字母出现(常量名不需要加 $ 修饰符)

注意: 常量在整个脚本中都可以使用

   设置 PHP 常量

设置常量,使用 define() 函数,函数语法如下:

bool define ( string $name , mixed $value ,case_insensitive[true/false] )

该函数有三个参数:

   ①name:必选参数,常量名称,即标志符;

   ②value:必选参数,常量的值;

   ③case_insensitive :可选参数,如果设置为true,该常量则大小写不敏感。默认false是大小写敏感的

    1 . 区分大小写的常量, 常量值为 "欢迎访问":

<?php
// 区分大小写的常量名
define("GREETING", "欢迎访问");
echo GREETING;    // 输出 "欢迎访问"
echo '<br>';
echo greeting;   // 输出 "greeting"
?>

   2. 以下创建一个不区分大小写的常量, 常量值为 "欢迎访问":

<?php
// 不区分大小写的常量名
define("GREETING", "欢迎访问", true);
echo greeting;  // 输出 "欢迎访问"
?>

   常量是全局的:

常量在定义后,默认是全局变量,可以在整个运行的脚本的任何地方使用

以下演示了在函数内使用常量,即便常量定义在函数外也可以正常使用常量

<?php
define("GREETING", "欢迎访问");
function myTest() {
    echo GREETING;
}
myTest();    // 输出 "欢迎访问"
?>

 

(8)运算符

  ①算数运算符;

  ②赋值运算符;

  ③字符串运算符;

  ④递增 / 递减运算符;

  ⑤比较运算符;

  ⑥逻辑运算符;

  ⑦数组运算符;

具体详解我在后面文章PHP运算符详解里做了总结

 

(9)条件语句

   编写代码时,经常会希望为不同的决定执行不同的动作。您可以在代码中使用条件语句来实现这一点。

在 PHP 中,我们可以使用以下条件语句:

  ①if 语句 - 如果指定条件为真,则执行代码

  ②if...else 语句 - 如果条件为 true,则执行代码;如果条件为 false,则执行另一端代码

  ③if...elseif....else 语句 - 选择若干段代码块之一来执行

  ④switch 语句 - 语句多个代码块之一来执行,可以避免冗长的 if..elseif..else 代码块

<?php
switch (n){
case label1:
    如果 n=label1,此处代码将执行;
    break;
case label2:
    如果 n=label2,此处代码将执行;
    break;
default:
    如果 n 既不等于 label1 也不等于 label2,此处代码将执行;
}
?>
   注意:工作原理:

             ①对表达式(通常是变量)进行一次计算

             ②把表达式的值与结构中 case 的值进行比较

             ③如果存在匹配,则执行与 case 关联的代码

             ④代码执行后,break 语句阻止代码跳入下一个 case 中继续执行

             ⑤如果没有 case 为真,则使用 default 语句

(10)循环

   ①while 循环

    只要指定的条件为真,while 循环就会执行代码块

   下例把变量 $x 设置为 1($x=1),然后执行 while 循环,只要 $x 小于或等于 5。循环每运行一次,$x 将递增 1:

<?php
$x=1;$num;
while($x<=5) {
  global $num;
  echo "这个数字是:$x <br>";
  $num+=$x;
  $x++;
  echo "总数是:$num <br>";
}
?>
   ②do...while 循环

   首先会执行一次代码块,然后检查条件,如果指定条件为真,则重复循环

   下例首先把变量 $x 设置为 1($x=1),然后do while 循环输出一段字符串,然后对变量 $x 递增 1,随后对条件进行检查($x 是否小于或等于 5);只要 $x 小于或等于 5,循环将会继续运行:

<?php 
$x=1; 
do {
  echo "这个数字是:$x <br>";
  $x++;
} while ($x<=5);
?>
   ③for 循环

  如果已经提前确定脚本运行的次数,可以使用 for 循环

  语法:

for (init counter;test counter评估每个循环迭代; increment counter) {
  code to be executed;
}
init counter:初始化循环计数器的值;
increment counter:增加循环计数器的值;
test counter评估每个循环迭代;

   下例显示了从 0 到 10 的数字:

<?php 
for ($x=0; $x<=10; $x++) {
  echo "数字是:$x <br>";
} 
?>

   ④foreach 循环

foreach 循环只适用于数组,并用于遍历数组中的每个键/值对

<?php 
$colors = array("red","green","blue","yellow"); 
foreach ($colors as $value) {
  echo "$value <br>";
}
?>

 

(11)函数

   PHP有超过1000个内建的函数,还可以自定义函数。页面加载时函数不会立即执行,只有在被调用时才会执行。

   ①自定义函数

      函数名能够以字母或下划线开头(而非数字),函数名对大小写不敏感,且应该能够反映函数所执行的任务

<?php
function writeMsg() {
  echo "我被调用了";
}
writeMsg(); // 调用函数
?>

    ②函数参数

       可以通过参数向函数传递信息,参数类似变量

      参数被定义在函数名之后,括号内部;可以添加任意多参数,只要用逗号隔开即可

<?php
function familyName($fname,$lname) {
  echo "$fname $lname.<br>";
}
familyName("Li","Mei");
familyName("Hong","Mei");
familyName("Tao","Mei");
familyName("Xiao","Mei");
familyName("Jian","Mei");
?>

   ③默认参数值

      下例展示了如何使用默认参数。如果我们调用没有参数的 setHeight() 函数,它的参数会取默认值50

<?php
function setHeight($minheight=50) {
  echo "The height is : $minheight <br>";
}
setHeight(350);
setHeight(); // 将使用默认值 50
setHeight(135);
setHeight(80);
?>

   ④函数返回值

      如需使函数返回值,可以使用 return 语句:

<?php
function sum($x,$y) {
  $z=$x+$y;
  return $z;
}
echo "5 + 10 = " . sum(5,10) . "<br>";
echo "7 + 13 = " . sum(7,13) . "<br>";
echo "2 + 4 = " . sum(2,4);
?>

 

(12)数组

       ①简介:数组是特殊的变量,能够在单独的变量名中存储一个或多个值

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

       ③类型:有三种数组类型:

                      1. 索引数组 - 带有数字索引的数组

                      2. 关联数组 - 带有指定键的数组

                      3. 多维数组 - 包含一个或多个数组的数组

        ④索引数组:两种创建方法

                      1. 自动分配索引(索引从 0 开始):

$cars=array("Volvo","BMW","SAAB");

                      2. 手动分配索引:

$cars[0]="Volvo";
$cars[1]="BMW";
$cars[2]="SAAB";

         ⑤数组长度:count() 函数用于返回数组的长度(元素数):

<?php
$cars=array("Volvo","BMW","SAAB");
echo count($cars);
?>

        ⑥遍历索引数组

           如需遍历并输出索引数组的所有值,可以使用 for 循环,就像这样:

<?php
$cars=array("Volvo","BMW","SAAB");
$arrlength=count($cars);
for($x=0;$x<$arrlength;$x++) {
  echo $cars[$x];
  echo "<br>";
}
?>

        ⑦关联数组:使用指定键的数组,两种创建方法:

$age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");
//或者
$age['Peter']="35";
$age['Ben']="37";
$age['Joe']="43";

        ⑧遍历关联数组

            如需遍历并输出关联数组的所有值,可以使用 foreach 循环,就像这样:

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

        ⑨多维数组,关于多维数组我在后面文章PHP数组详解做了介绍

 

(13)数组排序

     数组中的元素能够以字母或数字顺序进行升序或降序排序

     数组排序函数:

              ①sort() - 以升序对数组排序

              ②rsort() - 以降序对数组排序

              ③ksort() - 根据键,以升序对关联数组进行排序

              ④krsort() - 根据键,以降序对关联数组进行排序

              ⑤asort() - 根据值,以升序对关联数组进行排序

              ⑥arsort() - 根据值,以降序对关联数组进行排序

     下面依次详解:

     ①对数组进行升序排序 - sort()

         1. 按照字母升序对数组 $cars 中的元素进行排序:

<?php
$cars=array("Volvo","BMW","SAAB");
sort($cars);
?>

         2. 数字升序对数组 $numbers 中的元素进行排序:

<?php
$numbers=array(3,5,1,22,11);
sort($numbers);
?> 
      ②对数组进行降序排列语法,与数组升序排列相同(在之前加上rsort即可)

      ③根据键对数组进行升序排序 - ksort(),实例

<?php
$age=array("Bill"=>"35","Steve"=>"37","Peter"=>"43");
ksort($age);
?>
      ④根据键对数组进行降序排序 - krsort(),实例
<?php
$age=array("Bill"=>"35","Steve"=>"37","Peter"=>"43");
krsort($age);
?>
      ⑤根据值对数组进行升序排序 - asort(),实例:
<?php
$age=array("Bill"=>"35","Steve"=>"37","Peter"=>"43");
asort($age);
?>

      ⑥根据值对数组进行降序排序 - arsort(),实例

<?php
$age=array("Bill"=>"35","Steve"=>"37","Peter"=>"43");
arsort($age);
?>
      

(14)全局变量---超全局变量

         超全局变量 在 PHP 4.1.0 中引入,是在全部作用域中始终可用的内置变量

         PHP 中的许多预定义变量都是“超全局的”,这意味着它们在一个脚本的全部作用域中都可用。在函数或方法中无需执行 global $variable; 就可以访问它们。这些超全局变量是:

          $GLOBALS,$_SERVER,$_REQUEST,

          $_POST,$_GET,$_FILES,

          $_ENV,$_COOKIE,$_SESSION

下面依次介绍个别:

   ①$GLOBALS — 引用全局作用域中可用的全部变量;

   ②$_SERVER 保存关于报头、路径和脚本位置的信息;

   ③$_REQUEST 用于收集 HTML 表单提交的数据;

   ④$_POST 广泛用于收集提交 method="post" 的 HTML 表单后的表单数据,也常用于传递变量;

   ⑤$_GET常用于收集提交 HTML 表单 (method="get") 之后的表单数据,也可以收集 URL 中的发送的数据

具体我在后面文章PHP全局变量详解里做了总结

 

 

【总结拓展】

 ①常见的输出语句

    echo(): 可以一次输出多个值,多个值之间用逗号分隔。echo是语言结构(language construct),而并不是真正的函数,因此不能作为表达式的一部分使用;

    print(): 函数print()打印一个值(它的参数),如果字符串成功显示则返回true,否则返回false;

    print_r(): 可以把字符串和数字简单地打印出来,而数组则以括起来的键和值得列表形式显示,并以Array开头。但print_r()输出布尔值和NULL的结果没有意义,因为都是打印"\n"。因此用var_dump()函数更适合调试;

    var_dump(): 判断一个变量的类型与长度,并输出变量的数值,如果变量有值输的是变量的值并回返数据类型。此函数显示关于一个或多个表达式的结构信息,包括表达式的类型与值。数组将递归展开值,通过缩进显示其结构

    ②PHP常用循环语句

          while - 只要指定条件为真,则循环代码块

          do...while - 先执行一次代码块,然后只要指定条件为真则重复循环

          for - 循环代码块指定次数

          foreach - 遍历数组中的每个元素并循环代码块

 

 

 

【常见错误】

①解析错误:语法错误,出现意外的'echo'

Parse error: syntax error, unexpected 'echo' 

 出现这种错误提示一般是由于语法错误,我第一次出现是因为将注释与<?php ?>同行,导致解析错误。所以   注意:不要将注释与<?php ?>同行

②语法错误:print无法打印多个字符串

Parse error: syntax error, unexpected ','

 解析错误:语法错误,意外的','号

③语法错误:输出后未加封号

Parse error: syntax error, unexpected  ';'
 解析错误:语法错误,缺少;号

 

 

 

 

.

猜你喜欢

转载自570109268.iteye.com/blog/2412190