PHP变量剖析
php的变量是代表值的符号或名称。变量用于存储数值、字符、字符串或内存地址等值,以便可以在程序的任何部分使用它们。接下来sojson会给大家讲解和举例。
声明PHP变量
PHP中的所有变量均以 $(美元)符号开头,后跟变量名称。
有效的变量名称以字母(AZ、az)或下划线(_)开头,后跟任意数量的字母、数字或下划线。
如果变量名超过一个单词,则可以用下划线分隔(例如 $employee_code 而不是 $employeecode)。
'$'是一个特殊变量,不能赋值。
PHP变量命名图解
示例:有效和无效的PHP变量
<?php
$abc = 'Welcome'; //valid
$Abc = 'W3resource.com'; //valid
$9xyz = 'Hello world'; //invalid; starts with a number
$_xyz = 'Hello world'; //valid; starts with an underscore
$_9xyz = 'Hello world'; //valid
$aäa = 'Hello world'; //valid; 'ä' is (Extended) ASCII 228.
?>
PHP变量名区分大小写
考虑以下示例:
<?php
$abc = 'Welcome';
echo "Value of abc : $abc";
echo "Value of ABC : $ABC";
?>
上面例子的输出:
Value of abc : Welcome
Value of ABC :
在上面的例子中,不同的资本化方案产生不同的变量。
PHP 是一种松散类型语言
在 C、C++ 和 Java 等语言中,程序员必须在使用变量之前声明变量的名称和类型。在 PHP 中,变量的类型在使用前不需要声明,因为类型与值而不是变量相关联。因此,变量可以根据需要改变其值的类型。
正如前面提到的,在 PHP 中使用变量或其类型之前不需要声明它们。在下面的示例中,所有变量在使用之前都没有声明,事实上 $height 是浮点数,$width 是整数。
<?php
$height = 3.5;
$width = 4;
$area=$height*$width;
echo "Area of the rectangle is : $area";
?>
PHP 变量:通过引用赋值
PHP(从 PHP4 开始)提供了另一种给变量赋值的方法:通过引用赋值。这意味着新变量只是指向原始变量。对新变量的更改会影响原始变量,反之亦然。
考虑以下示例:
<?php
$foo='bob';
$bar=&$foo;
$bar="my $bar";
echo $bar;
echo '<br />';
echo $foo;
?>
输出:
my bob
my bob
PHP变量
您知道如何在 PHP 中声明变量。但是,如果您希望变量的名称本身就是变量怎么办?在 PHP 中,您有变量 Variables,因此您可以将一个变量分配给另一个变量。
在下面的示例中,第 1 行。在第 2 行中,我们声明了一个名为 $v 的变量,它存储值“var1”。4、“var1”使用两个美元符号作为变量名。即$$v。
因此现在有两个变量。$v 存储值“var1”,而 $$v 存储值 var2。此时$$v和$var1相等,都存储值“var2”。
例子:
<?php
$v='var1';
echo $v; // prints var1
$v = 'var2';
echo $v; // prints var2
echo $var1; // prints var2
?>
PHP 变量范围
在 PHP 中,可以在脚本中的任何位置声明变量。我们声明特定范围的变量。有两种类型的作用域:局部作用域(在函数内部创建和访问变量)和全局作用域(在函数外部创建和访问变量)。
例子:
<?php
//global scope
$x = 10;
function var_scope()
{
//local scope
$y=20;
echo "The value of x is : $x "."<br />";
echo "The value of y is : $y"."<br />";
}
var_scope();
echo "The value of x is : $x"."<br />";
echo "The value of y is : $y ";
?>
在上面的脚本中有两个变量 $x 和 $y 以及一个函数 var_scope()。$x 是一个全局变量,因为它是在函数外部声明的,而 $y 是一个局部变量,因为它是在函数 var_scope() 内部创建的。在脚本末尾,调用 var_scope() 函数,后跟两个 echo 语句。让我们看看脚本的输出:
The value of x is :
The value of y is : 20
The value of x is : 10
The value of y is :
var_scope() 函数中有两个 echo 语句。它打印 $y 的值,因为它是本地声明的,并且无法打印 $x 的值,因为它是在函数外部创建的。
脚本的下一个语句打印 $x 的值,因为它是全局变量,即不在任何函数内创建。
最后一个 echo 语句无法打印 $y 的值,因为它是局部变量并且是在函数 var_scope() 函数内创建的。
全局关键字
我们已经知道在函数外部声明的变量是全局的。除了函数内之外,它们可以在程序中的任何位置访问。
要在函数内使用这些变量,必须在该函数中将变量声明为全局变量。为此,我们在变量之前使用 global 关键字。考虑以下示例:
例子:
<?php
$x=2;
$y=4;
$z=5;
$xyz=0;
function multiple()
{
global $x, $y, $z, $xyz;
$xyz=$x*$y*$z;
}
multiple();
echo $xyz;
?>
在上面的示例中,$x、$y、$z、$xyz 已初始化为 2、4、5、0。在 multiple() 函数中,我们将 $x、$y、$z、$xyz 声明为全局。因此,每个变量的所有引用都将引用全局版本。现在在脚本中的任何位置调用 multiple() ,变量 $xyz 将打印 40,因为它已经被称为全局的。
PHP静态变量
通常,当函数终止时,其所有变量都会丢失其值。有时我们想为进一步的工作保留这些价值观。通常,那些保存值的变量在函数内称为静态变量。为此,我们必须在这些变量前面写入关键字“static”。考虑以下没有静态变量的示例。
示例:没有静态变量
<?php
function test_variable()
{
$x=1;
echo $x;
$x++;
}
test_variable();
echo "<br>";
test_variable();
echo "<br>";
test_variable();
?>
在上面的脚本中,函数 test_variable() 是无用的,因为最后一个语句 $x = $x +1 不能增加 $x 的值,因为每次调用它时 $x 都会设置为 1 并打印 1。
输出:
为了克服上述脚本的问题,$x 可以声明为静态的。请参阅以下示例。
示例:使用静态变量
<?php
function test_count()
{
static $x=1;
echo $x;
$x++;
}
test_count();
echo "<br>";
test_count();
echo "<br>";
test_count();
?>
输出:
1
2
3
PHP:保留字
下表中的字是保留字,不能用作常量、类名、函数或方法名。您可以将它们用作变量名称,但不要用作变量名称以避免混淆。
PHP关键字
摘要(从 PHP 5 开始) | 和 | 大批() | 作为 | 休息 |
---|---|---|---|---|
案件 | catch(从 PHP 5 开始) | cfunction(仅限 PHP 4) | 班级 | 克隆(从 PHP 5 开始) |
常量 | 继续 | 宣布 | 默认 | 做 |
别的 | 否则 | 结束声明 | 恩福 | 结束foreach |
万一 | 末端开关 | 最后 | 延伸 | 最终版本(从 PHP 5 开始) |
为了 | foreach | 功能 | 全球的 | goto(从 PHP 5.3 开始) |
如果 | 实现(从 PHP 5 开始) | 接口(从 PHP 5 开始) | instanceof(从 PHP 5 开始) | 私有(从 PHP 5 开始) |
命名空间(从 PHP 5.3 开始) | 新的 | old_function(仅限 PHP 4) | 或者 | 抛出(从 PHP 5 开始) |
受保护(从 PHP 5 开始) | 公共(从 PHP 5 开始) | 静止的 | 转变 | 异或 |
尝试(从 PHP 5 开始) | 使用 | 变量 | 尽管 |
编译时常量
__班级__ | _DIR__(从 PHP 5.3 开始) | _文件_ | __线__ | __功能__ |
__方法__ | __NAMESPACE__(从 PHP 5.3 开始) |
语言结构
死() | 回声() | 空的() | 出口() | 评估() |
包括() | include_once() | 伊塞特() | 列表() | 要求() |
require_once() | 返回() | 打印() | 取消设置() |
版权所属:SO JSON在线解析
原文地址:https://www.sojson.com/blog/511.html
转载时必须以链接形式注明原始出处及本声明。
如果本文对你有帮助,那么请你赞助我,让我更有激情的写下去,帮助更多的人。