• 售前

  • 售后

热门帖子
入门百科

PHP中单双号与变量

[复制链接]
蓝毛凤凰都bv 显示全部楼层 发表于 2021-10-25 19:08:29 |阅读模式 打印 上一主题 下一主题
例子
  1. <?php
  2. $string = "beautiful";
  3. $time = "winter";
  4. $str = 'This is a $string $time morning!';
  5. echo $str. "<br />";
  6. eval("\$str = "$str";");
  7. echo $str;
  8. ?>
复制代码
输出:
  1. This is a $string $time morning!
  2. This is a beautiful winter morning!
复制代码
分析:
php里,
单引号内的变量不会被执行,
双引号内的变量会被执行,
双引号内单引号里面的变量会被执行,
但是双引号内变量加上反斜杠就可以让这个变量不被执行,成为特例,比如:
  1. <?php
  2. $a=5;
  3. echo '$a'."\n"; // 结果输出 $a
  4. echo "$a\n"; // 结果输出 5
  5. echo "'$a'\n"; // 结果输出 '5'
  6. echo "\$a=".$a; // 结果输出 $a=5 ,点是连接符
  7. ?>
  8. eval("\$str = "$str";");
复制代码
一开始的 \$str 就是这个意思, 前面相当于 $str= ,就是给 $str 这个变量赋值;
后面的两个反斜杠加引号就是转义,就表示引号,所以后面的是 "$str" ,这个$str 会被执行,就是 " 'This is a $string with my $name in it.' "
这里又涉及一个双引号嵌套单引号的题目,比如sql语句
$sql = "select * from user where id = '$id' ";
这里就有双引号嵌套单引号,这里面的变量 $id 是会被执行的~
也就是说双引号嵌套单引号那么单引号里的变量也会被执行,,
或者可以简朴地总结:双引号内的变量假如没有前面加反斜杠的特例,则都是要执行的;
这个eval双引号内的将要被执行的代码就是 $str=" 'This is a $string with my $name in it.' "

增补:
PHP 是一门范例疏松的语言
在上面的例子中,请留意我们不必告知 PHP 变量的数据范例。
PHP 根据它的值,主动把变量转换为精确的数据范例。
在诸如 C 和 C++ 以及 Java 之类的语言中,步伐员必须在利用变量之前声明它的名称和范例。
PHP 变量作用域
在 PHP 中,可以在脚本的任意位置对变量进行声明。
变量的作用域指的是变量能够被引用/利用的那部分脚本。
PHP 有三种不同的变量作用域:
local(局部)
global(全局)
static(静态)
Local 和 Global 作用域

函数之外声明的变量拥有 Global 作用域,只能在函数以外进行访问。

函数内部声明的变量拥有 LOCAL 作用域,只能在函数内部进行访问。

下面的例子测试了带有局部和全局作用域的变量:

实例
  1. <?php
  2. $x=5; // 全局作用域
  3. function myTest() {
  4. $y=10; // 局部作用域
  5. echo "<p>测试函数内部的变量:</p>";
  6. echo "变量 x 是:$x";
  7. echo "<br>";
  8. echo "变量 y 是:$y";
  9. }
复制代码
myTest();
  1. echo "<p>测试函数之外的变量:</p>";
  2. echo "变量 x 是:$x";
  3. echo "<br>";
  4. echo "变量 y 是:$y";
  5. ?>
复制代码
在上例中,有两个变量 $x 和 $y,以及一个函数 myTest()。$x 是全局变量,因为它是在函数之外声明的,而 $y 是局部变量,因为它是在函数内声明的。

假如我们在 myTest() 函数内部输出两个变量的值,$y 会输出在当地声明的值,但是无法 $x 的值,因为它在函数之外创建。
然后,假如在 myTest() 函数之外输出两个变量的值,那么会输出 $x 的值,但是不会输出 $y 的值,因为它是局部变量,并且在 myTest() 内部创建。

注释:您可以在不同的函数中创建名称相同的局部变量,因为局部变量只能被在其中创建它的函数辨认。
总结
以上所述是小编给各人介绍的PHP中单双号与变量,希望对各人有所帮助,假如各人有任何疑问请给我留言,小编会实时复兴各人的。在此也非常感谢各人对脚本之家网站的支持!

帖子地址: 

回复

使用道具 举报

分享
推广
火星云矿 | 预约S19Pro,享500抵1000!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

草根技术分享(草根吧)是全球知名中文IT技术交流平台,创建于2021年,包含原创博客、精品问答、职业培训、技术社区、资源下载等产品服务,提供原创、优质、完整内容的专业IT技术开发社区。
  • 官方手机版

  • 微信公众号

  • 商务合作