php第一周

目录

01基础

1.0注释

1.1变量

1.2数据类型

1.3 输出echo/print

1.4常量

1.5运算符

1.5.1算数运算符

1.5.2赋值运算符

1.5.3递增/递减运算符

1.5.4PHP 比较运算符

1.5.5PHP 逻辑运算符

1.5.6PHP 数组运算符

1.5.7三元运算符(条件运算符)

1.6 if…else

1.7 switch

1.8数组

1.8.1数值数组

1.8.2关联数组

1.8.3多维数组

1.9数组排序

1.10超级全局变量

1.11循环

1.11.1while

1.11.2do...while

1.11.3for

1.11.4foreach

1.12函数

1.13魔术常量

1.13.1LINE

1.13.2FILE

1.13.3DIR

1.13.4FUNCTION

1.13.5CLASS

1.13.6TRAIT

1.13.7METHOD

1.13.8NAMESPACE

01基础

1.0注释

  <?php
  // 这是 PHP 单行注释
  ​
  /*
  这是
  PHP 多行
  注释
  */
  ?>

1.1变量

  
  //1.命名规则
  //  ·变量名以$开头,eg:$name,$NAME;
  //  ·$后面的第一个字符不可以是数字,只能是下划线_或者字母;
  //  ·除了下划线_外,变量不允许出现任何空格或标点符号。也就是说变量名只能包含:a-z、A-Z、0-9 以及下划线_;
  //  ·变量名区分大小写,$name 和 $NAME 不同
  //2.可变变量
  //  一个变量的变量名可以动态的设置和使用,eg:
  <?php
      $a = 'hello';
      $$a = 'world';      //$hello = world
      echo "$a ${$a}";    //输出 hello world
      echo "$a $hello";   //输出 hello world
  ?>
  //3.变量的引用赋值
  //  ·普通赋值:变量2 = 变量1;
  //  ·引用赋值:变量2 = &变量1;
      
  PHP 变量作用域
  变量的作用域是脚本中变量可被引用/使用的部分。
  ​
  PHP 有四种不同的变量作用域:
  ​
  local
  global      用于函数内访问全局变量
      PHP 将所有全局变量存储在一个名为 $GLOBALS[index] 的数组中。 index 保存变量的名称。这个数组可以在函数内部访问,也可以    直接用来更新全局变量。
      $GLOBALS['y']=$GLOBALS['x']+$GLOBALS['y'];
  static  静态
      
  parameter

1.2数据类型

  
  //三大类八种数据类型
  //1.标量(4种)
      ·整型     int
      ·浮点型    float
      ·字符串    string      
          在 PHP 中,只有一个字符串运算符。并置运算符 (.) 用于把两个字符串值连接起来。
          strlen() 函数返回字符串的长度(字节数)。
          strpos() 函数用于在字符串内查找一个字符或一段指定的文本。如果在字符串中找到匹配,该函数会返回第一个匹配的字符位置。如果未找到匹配,则返回 FALSE。    eg:
          <?php
          echo strpos("Hello world!","world");
          ?>
          输出:6
      ·布尔值    boolean
  //2.复合数据类型(2种)
  //  ·数组     array
  //  ·对象     object
  //3.特殊数据类型(2种)
  //  ·资源     resource
  //  ·null
  ​
  //整型
  //二进制   0b 开头
  //八进制   0  开头
  //十六进制  0X或0x 开头 x不区分大小写 
  ​
  PHP var_dump() 函数返回变量的数据类型和值
      eg:
  <?php 
  $x = 5985;
  var_dump($x);
  echo "<br>"; 
  $x = -345; // 负数 
  var_dump($x);
  echo "<br>"; 
  $x = 0x8C; // 十六进制数
  var_dump($x);
  echo "<br>";
  $x = 047; // 八进制数
  var_dump($x);
  ?>
      输出:
  int(5985)
  int(-345)
  int(140)
  int(39)
      
      
  资源类型 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
  ?>

1.3 输出echo/print

echo 和 print 区别:

  • echo - 可以输出一个或多个字符串

  • print - 只允许输出一个字符串,返回值总为 1

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

1.4常量

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

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

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

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

该函数有三个参数:

  • name:必选参数,常量名称,即标志符。

  • value:必选参数,常量的值。

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

    注意:自 PHP 7.3.0 开始,定义不区分大小写的常量已被弃用。从 PHP 8.0.0 开始,只有 false 是可接受的值,传递 true 将产生一个警告。

eg:

  
  <?php
  // 区分大小写的常量名
  define("GREETING", "欢迎访问 Runoob.com");
  echo GREETING;    // 输出 "欢迎访问 Runoob.com"
  echo '<br>';
  echo greeting;   // 输出 "greeting",但是有警告信息,表示该常量未定义
  ?>
      
  <?php
  // 不区分大小写的常量名
  define("GREETING", "欢迎访问 Runoob.com", true);
  echo greeting;  // 输出 "欢迎访问 Runoob.com"
  ?>

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

1.5运算符

1.5.1算数运算符

加(x+y)、减(x-y)、乘(x*y)、除(x/y)、模 取余(x%y)、设置负数(-x)、取反(-x)、并置(a.b)

整除运算符 intdiv(),该函数返回值为第一个参数除于第二个参数的值并取整(向下取整)

  
  <?php
  var_dump(intdiv(10, 3));
  ?>
  ​
  输出int(3)
1.5.2赋值运算符

在 PHP 中,基本的赋值运算符是 =。它意味着左操作数被设置为右侧表达式的值。也就是说,$x = 5 的值是 5

运算符等同于描述
x = yx = y左操作数被设置为右侧表达式的值
x += yx = x + y
x -= yx = x - y
x *= yx = x * y
x /= yx = x / y
x %= yx = x % y模(除法的余数)
a .= ba = a . b连接两个字符串
1.5.3递增/递减运算符
运算符名称描述
++ x预递增x 加 1,然后返回 x
x ++后递增返回 x,然后 x 加 1
-- x预递减x 减 1,然后返回 x
x --后递减返回 x,然后 x 减 1
1.5.4PHP 比较运算符

比较操作符可以让您比较两个值:

运算符名称描述实例
x == y等于如果 x 等于 y,则返回 true5==8 返回 false
x === y绝对等于如果 x 等于 y,且它们类型相同,则返回 true5==="5" 返回 false
x != y不等于如果 x 不等于 y,则返回 true5!=8 返回 true
x <> y不等于如果 x 不等于 y,则返回 true5<>8 返回 true
x !== y不绝对等于如果 x 不等于 y,或它们类型不相同,则返回 true5!=="5" 返回 true
x > y大于如果 x 大于 y,则返回 true5>8 返回 false
x < y小于如果 x 小于 y,则返回 true5<8 返回 true
x >= y大于等于如果 x 大于或者等于 y,则返回 true5>=8 返回 false
x <= y小于等于如果 x 小于或者等于 y,则返回 true5<=8 返回 true
1.5.5PHP 逻辑运算符
运算符名称描述实例
x and y如果 x 和 y 都为 true,则返回 truex=6y=3(x < 10 and y > 1) 返回 true
x or y如果 x 和 y 至少有一个为 true,则返回 truex=6y=3(x==6 or y==5) 返回 true
x xor y异或如果 x 和 y 有且仅有一个为 true,则返回 truex=6y=3(x==6 xor y==3) 返回 false
x && y如果 x 和 y 都为 true,则返回 truex=6y=3(x < 10 && y > 1) 返回 true
x || y如果 x 和 y 至少有一个为 true,则返回 truex=6y=3(x==5 || y==5) 返回 false
! x如果 x 不为 true,则返回 truex=6y=3!(x==y) 返回 true
1.5.6PHP 数组运算符
运算符名称描述
x + y集合x 和 y 的集合
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
1.5.7三元运算符(条件运算符)
  
  ?: 同C   (a>b)?a:b

自 PHP 5.3 起,可以省略三元运算符中间那部分。表达式 expr1 ?: expr3 在 expr1 求值为 TRUE 时返回 expr1,否则返回 expr3。

PHP_EOL是一个换行符

1.6 if…else

同C

语法:

  
  if (条件)
  {
      条件成立时要执行的代码;
  }
  ​
  if (条件)
  {
  条件成立时执行的代码;
  }
  else
  {
  条件不成立时执行的代码;
  }
  ​
  if (条件)
  {
      if 条件成立时执行的代码;
  }
  elseif (条件)
  {
      elseif 条件成立时执行的代码;
  }
  else
  {
      条件不成立时执行的代码;
  }

1.7 switch

同C

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

1.8数组

在 PHP 中,array() 函数用于创建数组

  
  array();

在 PHP 中,有三种类型的数组:

  • 数值数组 - 带有数字 ID 键的数组

  • 关联数组 - 带有指定的键的数组,每个键关联一个值

  • 多维数组 - 包含一个或多个数组的数组

1.8.1数值数组
  
  这里有两种创建数值数组的方法:
  ​
  自动分配 ID 键(ID 键总是从 0 开始):
  ​
  $cars=array("Volvo","BMW","Toyota");
  人工分配 ID 键:
  ​
  $cars[0]="Volvo";
  $cars[1]="BMW";
  $cars[2]="Toyota";
  ​
  count() 函数用于返回数组的长度(元素的数量):
  <?php
  $cars=array("Volvo","BMW","Toyota");
  echo count($cars);
  ?>
      
  遍历并打印数值数组中的所有值
  <?php
  $cars=array("Volvo","BMW","Toyota");
  $arrlength=count($cars);
   
  for($x=0;$x<$arrlength;$x++)
  {
      echo $cars[$x];
      echo "<br>";
  }
  ?>
1.8.2关联数组
  
  $age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");
  ​
  $age['Peter']="35";
  $age['Ben']="37";
  $age['Joe']="43";
  ​
  <?php
  $age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");
  echo "Peter is " . $age['Peter'] . " years old.";
  ?>
1.8.3多维数组

1.9数组排序

  
  PHP 数组排序函数:
  ​
  sort() - 对数组进行升序排列
  rsort() - 对数组进行降序排列
  asort() - 根据关联数组的值,对数组进行升序排列
  ksort() - 根据关联数组的键,对数组进行升序排列
  arsort() - 根据关联数组的值,对数组进行降序排列
  krsort() - 根据关联数组的键,对数组进行降序排列
      
  eg:
  <?php
  $cars=array("Volvo","BMW","Toyota");
  sort($cars);
  ?>

1.10超级全局变量

超级全局变量在PHP 4.1.0之后被启用, 是PHP系统中自带的变量,在一个脚本的全部作用域中都可用。

  
  $GLOBALS    超级全局变量组 包含了全部变量的全局组合数组。变量的名字就是数组的键。
      <?php 
      $x = 75; 
      $y = 25;
  eg:
      function addition() 
      { 
          $GLOBALS['z'] = $GLOBALS['x'] + $GLOBALS['y']; 
      }
   
      addition(); 
      echo $z; 
      ?>
          
  $_SERVER    一个包含了诸如头信息(header)、路径(path)、以及脚本位置(script locations)等等信息的数组,这个数组中的项目由 Web 服务器创建。不能保证每个服务器都提供全部项目;服务器可能会忽略一些,或者提供一些没有在这里列举出来的项目。
  ​
  以下实例中展示了如何使用$_SERVER中的元素:
  ​
  实例
  <?php 
  echo $_SERVER['PHP_SELF'];
  echo "<br>";
  echo $_SERVER['SERVER_NAME'];
  echo "<br>";
  echo $_SERVER['HTTP_HOST'];
  echo "<br>";
  echo $_SERVER['HTTP_REFERER'];
  echo "<br>";
  echo $_SERVER['HTTP_USER_AGENT'];
  echo "<br>";
  echo $_SERVER['SCRIPT_NAME'];
  ?>
      
  $_REQUEST   用于收集HTML表单提交的数据
      
  $_POST
  $_GET
  $_FILES
  $_ENV
  $_COOKIE
  $_SESSION

下表列出了所有 $_SERVER 变量中的重要元素:

元素/代码描述
$_SERVER['PHP_SELF']当前执行脚本的文件名,与 document root 有关。例如,在地址为 http://example.com/test.php/foo.bar 的脚本中使用 $_SERVER['PHP_SELF'] 将得到 /test.php/foo.bar。FILE 常量包含当前(例如包含)文件的完整路径和文件名。 从 PHP 4.3.0 版本开始,如果 PHP 以命令行模式运行,这个变量将包含脚本名。之前的版本该变量不可用。
$_SERVER['GATEWAY_INTERFACE']服务器使用的 CGI 规范的版本;例如,"CGI/1.1"。
$_SERVER['SERVER_ADDR']当前运行脚本所在的服务器的 IP 地址。
$_SERVER['SERVER_NAME']当前运行脚本所在的服务器的主机名。如果脚本运行于虚拟主机中,该名称是由那个虚拟主机所设置的值决定。(如: www.runoob.com)
$_SERVER['SERVER_SOFTWARE']服务器标识字符串,在响应请求时的头信息中给出。 (如:Apache/2.2.24)
$_SERVER['SERVER_PROTOCOL']请求页面时通信协议的名称和版本。例如,"HTTP/1.0"。
$_SERVER['REQUEST_METHOD']访问页面使用的请求方法;例如,"GET", "HEAD","POST","PUT"。
$_SERVER['REQUEST_TIME']请求开始时的时间戳。从 PHP 5.1.0 起可用。 (如:1377687496)
$_SERVER['QUERY_STRING']query string(查询字符串),如果有的话,通过它进行页面访问。
$_SERVER['HTTP_ACCEPT']当前请求头中 Accept: 项的内容,如果存在的话。
$_SERVER['HTTP_ACCEPT_CHARSET']当前请求头中 Accept-Charset: 项的内容,如果存在的话。例如:"iso-8859-1,*,utf-8"。
$_SERVER['HTTP_HOST']当前请求头中 Host: 项的内容,如果存在的话。
$_SERVER['HTTP_REFERER']引导用户代理到当前页的前一页的地址(如果存在)。由 user agent 设置决定。并不是所有的用户代理都会设置该项,有的还提供了修改 HTTP_REFERER 的功能。简言之,该值并不可信。)
$_SERVER['HTTPS']如果脚本是通过 HTTPS 协议被访问,则被设为一个非空的值。
$_SERVER['REMOTE_ADDR']浏览当前页面的用户的 IP 地址。
$_SERVER['REMOTE_HOST']浏览当前页面的用户的主机名。DNS 反向解析不依赖于用户的 REMOTE_ADDR。
$_SERVER['REMOTE_PORT']用户机器上连接到 Web 服务器所使用的端口号。
$_SERVER['SCRIPT_FILENAME']当前执行脚本的绝对路径。
$_SERVER['SERVER_ADMIN']该值指明了 Apache 服务器配置文件中的 SERVER_ADMIN 参数。如果脚本运行在一个虚拟主机上,则该值是那个虚拟主机的值。(如:someone@runoob.com)
$_SERVER['SERVER_PORT']Web 服务器使用的端口。默认值为 "80"。如果使用 SSL 安全连接,则这个值为用户设置的 HTTP 端口。
$_SERVER['SERVER_SIGNATURE']包含了服务器版本和虚拟主机名的字符串。
$_SERVER['PATH_TRANSLATED']当前脚本所在文件系统(非文档根目录)的基本路径。这是在服务器进行虚拟到真实路径的映像后的结果。
$_SERVER['SCRIPT_NAME']包含当前脚本的路径。这在页面需要指向自己时非常有用。FILE 常量包含当前脚本(例如包含文件)的完整路径和文件名。
$_SERVER['SCRIPT_URI']URI 用来指定要访问的页面。例如 "/index.html"。

1.11循环

  • while - 只要指定的条件成立,则循环执行代码块

  • do...while - 首先执行一次代码块,然后在指定的条件成立时重复这个循环

  • for - 循环执行代码块指定的次数

  • foreach - 根据数组中每个元素来循环代码块

1.11.1while

同C

  
  while (条件)
  {
      要执行的代码;
  }
1.11.2do...while

同C

  
  do
  {
      要执行的代码;
  }
  while (条件);
1.11.3for

同C

  
  for (初始值; 条件; 增量)
  {
      要执行的代码;
  }
1.11.4foreach
  
  foreach ($array as $value)
  {
      要执行代码;
  }
  每进行一次循环,当前数组元素的值就会被赋值给 $value 变量(数组指针会逐一地移动),在进行下一次循环时,您将看到数组中的下一个值。
      
  foreach ($array as $key => $value)
  {
      要执行代码;
  }
  每一次循环,当前数组元素的键与值就都会被赋值给 $key 和 $value 变量(数字指针会逐一地移动),在进行下一次循环时,你将看到数组中的下一个键与值。
      
  ​
  下面的实例演示了一个输出给定数组的值的循环:
  ​
  实例
  <?php
  $x=array("Google","Runoob","Taobao");
  foreach ($x as $value)
  {
      echo $value . PHP_EOL;
  }
  ?>
      
  ​
  下面的实例演示了一个输出给定数组键与值的循环:
  <?php
  $x=array(1=>"Google", 2=>"Runoob", 3=>"Taobao");
  foreach ($x as $key => $value)
  {
      echo "key  为 " . $key . ",对应的 value 为 ". $value . PHP_EOL;
  }
  ?>

1.12函数

  
  <?php
  function functionName()
  {
      // 要执行的代码
  }
  ?>

PHP 函数准则:

  • 函数的名称应该提示出它的功能

  • 函数名称以字母或下划线开头(不能以数字开头)

  
  下面的函数有两个参数:
  ​
  实例
  <?php
  function writeName($fname,$punctuation)
  {
      echo $fname . " Refsnes" . $punctuation . "<br>";
  }
   
  echo "My name is ";
  writeName("Kai Jim",".");
  echo "My sister's name is ";
  writeName("Hege","!");
  echo "My brother's name is ";
  writeName("Ståle","?");
  ?>
      
      
  如需让函数返回一个值,请使用 return 语句。
  ​
  实例
  <?php
  function add($x,$y)
  {
      $total=$x+$y;
      return $total;
  }
   
  echo "1 + 16 = " . add(1,16);
  ?>

1.13魔术常量

PHP 向它运行的任何脚本提供了大量的预定义常量。

不过很多常量都是由不同的扩展库定义的,只有在加载了这些扩展库时才会出现,或者动态加载后,或者在编译时已经包括进去了。

有八个魔术常量它们的值随着它们在代码中的位置改变而改变。

例如 LINE 的值就依赖于它在脚本中所处的行来决定。这些特殊的常量不区分大小写,如下:

1.13.1LINE

文件中的当前行号。

实例

  
  <?php
  echo '这是第 " '  . __LINE__ . ' " 行';
  ?>

以上实例输出结果为:

  
  这是第 “ 2 ” 行

1.13.2FILE

文件的完整路径和文件名。如果用在被包含文件中,则返回被包含的文件名。

自 PHP 4.0.2 起,FILE 总是包含一个绝对路径(如果是符号连接,则是解析后的绝对路径),而在此之前的版本有时会包含一个相对路径。

实例:

  
  <?php
  echo '该文件位于 " '  . __FILE__ . ' " ';
  ?>

以上实例输出结果为:

  
  该文件位于 “ E:\wamp\www\test\index.php ”

1.13.3DIR

文件所在的目录。如果用在被包括文件中,则返回被包括的文件所在的目录。

它等价于 dirname(FILE)。除非是根目录,否则目录中名不包括末尾的斜杠。(PHP 5.3.0中新增)

实例

  
  <?php
  echo '该文件位于 " '  . __DIR__ . ' " ';
  ?>

以上实例输出结果为:

  
  该文件位于 “ E:\wamp\www\test ”
1.13.4FUNCTION

函数名称(PHP 4.3.0 新加)。自 PHP 5 起本常量返回该函数被定义时的名字(区分大小写)。在 PHP 4 中该值总是小写字母的。

实例

  
  <?php
  function test() {
      echo  '函数名为:' . __FUNCTION__ ;
  }
  test();
  ?>

以上实例输出结果为:

  
  函数名为:test
1.13.5CLASS

类的名称

在 PHP 4 中该值总是小写字母的。类名包括其被声明的作用区域(例如 Foo\Bar)。注意自 PHP 5.4 起 CLASS 对 trait 也起作用。当用在 trait 方法中时,CLASS 是调用 trait 方法的类的名字。

  
  <?php
  class test {
      function _print() {
          echo '类名为:'  . __CLASS__ . "<br>";
          echo  '函数名为:' . __FUNCTION__ ;
      }
  }
  $t = new test();
  $t->_print();
  ?>
1.13.6TRAIT

Trait 的名字(PHP 5.4.0 新加)。自 PHP 5.4.0 起,PHP 实现了代码复用的一个方法,称为 traits。

Trait 名包括其被声明的作用区域(例如 Foo\Bar)。

从基类继承的成员被插入的 SayWorld Trait 中的 MyHelloWorld 方法所覆盖。其行为 MyHelloWorld 类中定义的方法一致。优先顺序是当前类中的方法会覆盖 trait 方法,而 trait 方法又覆盖了基类中的方法。

  
  <?php
  class Base {
      public function sayHello() {
          echo 'Hello ';
      }
  }
   
  trait SayWorld {
      public function sayHello() {
          parent::sayHello();
          echo 'World!';
      }
  }
   
  class MyHelloWorld extends Base {
      use SayWorld;
  }
   
  $o = new MyHelloWorld();
  $o->sayHello();
  ?>
1.13.7METHOD

类的方法名(PHP 5.0.0 新加)。返回该方法被定义时的名字(区分大小写)。

实例:

  
  <?php
  function test() {
      echo  '函数名为:' . __METHOD__ ;
  }
  test();
  ?>

以上实例输出结果为:

函数名为:test


1.13.8NAMESPACE

当前命名空间的名称(区分大小写)。此常量是在编译时定义的(PHP 5.3.0 新增)。

实例:

  
  <?php
  namespace MyProject;
   
  echo '命名空间为:"', __NAMESPACE__, '"'; // 输出 "MyProject"
  ?>

以上实例输出结果为:

命名空间为:"MyProject"


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值