Home  >  Article  >  Backend Development  >  Detailed explanation of PHP variables and dynamic string insertion into variables (case)

Detailed explanation of PHP variables and dynamic string insertion into variables (case)

墨辰丷
墨辰丷Original
2018-05-17 09:25:101685browse

这篇文章主要介绍了PHP正在进行时-变量详解及字符串动态插入变量的方法,非常不错,具有参考借鉴价值,需要的朋友可以参考下

在PHP中,变量是$+变量名,变量名遵循标识符的命名规则,可以以字母、下划线开头,可以由数字、下划线、字母组成合法的变量名。

变量声明

所有变量在使用之前应该进行声明,而且最好带上注释,虽然在PHP中可以不显示声明变量。声明变量之后,可以为变量进行赋值;变量的赋值有两种类型值赋值和引用赋值。

<?php
  #合法的声明变量
  $_name;
  $account;
  $show_title;
  #赋值
  $color="red";
  #引用赋值
  $user_color=&$color;
?>

变量的作用域

在PHP脚本中的任何位置都可以声明变量,但是根据位置的不同,作用域的范围也不同。

局部变量

一般局部变量都是在函数中声明,即它只能在函数中被引用,函数退出时改变量及其值被销毁。如果在函数外使用该变量,PHP会把它当作另外一个变量进行处理,与函数中的变量无任何关系。

<?php
  $x=5;
  function show_x() {
    $x=3;
    echo $x;
  }
  show_x();
  echo $x;
?>

函数参数

函数参数更具其传递的方式分为两种,按值传递和按引用传递;如果是按值传递,参数的作用域只限于函数内,函数退出后参数被销毁。但按引用传递,参数的作用域范围不仅在函数内部。

<?php
  $cost_fish=20.10;
  $cost_apple=2.45;
  #引用参数前面需要加上&符号
  function rise($cost_fish,&$cost_apple) {
    $cost_fish++;
    $cost_apple++;
  }
  rise($cost_fish,$cost_apple);
  echo $cost_fish."值传递参数<--->引用传递参数".$cost_apple;
?>

全局变量

可以在脚本中的任何一个地方访问全局变量,但在函数中要修改全局变量的时候需要使用关键字global显式的声明。

<?php
  $x=5;
  function show_x() {
    global $x;
    $x++;
  }
  show_x();
?>

通过$GLOBAL数组也可以声明全局变量

<?php
  $x=5;
  function show_x() {
    global $x;
    $x++;
  }
  show_x();
?>

使用全局变量一定要谨慎,用多了之后很容易造成代码混乱。

静态变量

静态变量与函数参数不同在于,静态变量声明的时候多了static关键字,使得静态变量在函数退出之后不会被销毁,并且保留这个值在函数再次调用的时候使用该值。

<?php
  function spend() {
    static $date=0;
    $date++;
    echo $date;
  }
  spend();
  spend();
?>

PHP预定义变量

PHP中预定义了很多变量,可以在执行脚本的任何位置访问他们,这些变量主要是提供了大量关于环境的信息。

  //打印出$_SERVER 预定义的变量信息
  foreach($_SERVER as $var =>$value){
    echo "$var=>$value<br/>";
  }

先看下PHP正在进行时-字符串动态插入变量的内容。具体内容详情如下所示:

在PHP中,一般用双引号或者单引号将字符串括起来。

  echo "张三李四王五叫上赵六一起去&#39;喝酒&#39;".

如果要动态将将数据插入到字符串中,我们除了使用.号拼接,还可以通过使用{}来标识字符串中动态的部分。

<?php
  $name="赵六";
  echo "张三李四王五\n叫上$name一起去\&#39;喝酒\&#39;.";
  echo "</br>";
  echo "张三李四王五\n叫上\$name一起去\&#39;喝酒\&#39;.";
  echo "</br>";
  echo "张三李四王五\n叫上{$name}一起去&#39;喝酒&#39;.";
  echo "</br>";
  echo &#39;张三李四王五\n叫上$name一起去\&#39;喝酒\&#39;.&#39;;
  echo "</br>";
  echo &#39;张三李四王五\n叫上{$name}一起去\&#39;喝酒\&#39;.&#39;;
  echo "</br>";
?>

通过上面的代码我们发现:

  • 在双引号中直接插入变量是无效的;

  • 在双引号中可以通过反斜杠()转义字符,但双引号中的单引号不需要通过反斜杠转义;

  • 在单引号中除了可以转义单引号,对其他的字符反斜杠转义是无效的;

  • 通过{}可以在双引号字符串中动态插入变量。

相关推荐:

PHP中的变量 Sessions

PHP变量范围详解

php扩展开发之变量设置和销毁

The above is the detailed content of Detailed explanation of PHP variables and dynamic string insertion into variables (case). For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn