PHP入门学习笔记之—— PHP 变量

来源:互联网 发布:压缩感知 算法 翻译 编辑:程序博客网 时间:2024/05/21 18:45
PHP 变量:PHP 中的变量用一个美元符号后面跟变量名来表示。变量名是区分大小写的。
   Note: $this 是一个特殊的变量,它不能被赋值。
   变量名与 PHP 中其它的标签一样遵循相同的规则。
   一个有效的变量名由字母或者下划线开头,后面跟上任意数量的字母,数字,或者下划线。
   按照正常的正则表达式,它将被表述为:'[a-zA-Z_x7f-xff][a-zA-Z0-9_x7f-xff]*'。
   Note: 在此所说的字母是 a-z,A-Z,以及 ASCII 字符从 127 到 255(0x7f-0xff)。
   使用引用赋值,简单地将一个 & 符号加到将要赋值的变量前(源变量)。
                    <?php
$foo = 'Bob';              // 将 'Bob' 赋给 $foo
$bar = &$foo;              // 通过 $bar 引用 $foo
$bar = "My name is $bar";  // 修改 $bar 变量
echo $bar;
echo $foo;                 // $foo 的值也被修改
    ?>
          未初始化的变量具有其类型的默认值 :
          布尔类型的变量默认值是 FALSE,整形和浮点型变量默认值是零,字符串型变量默认值是空字符串或者数组  变量的默认值是空数组。
    isset() 语言结构可以用来检测一个变量是否已被初始化。

PHP 静态变量与递归函数 :
<?php

function test()
{
    static $count = 0;

    $count++;
    echo $count;
    if ($count < 10) {
        test();
        echo $count;
    }
    $count--;
}
test();
?>

PHP  可变变量 :
一个可变变量获取了一个普通变量的值作为这个可变变量的变量名。
在上面的例子中 hello 使用了两个美元符号($)以后,就可以作为一个可变变量的变量了。
例如:
<?php
$$a = 'world';
?>
这时,两个变量都被定义了:$a 的内容是“hello”并且 $hello 的内容是“world”。
<?php
echo "$a ${$a}";
?>
以下写法更准确并且会输出同样的结果:
<?php
echo "$a $hello";
?>
它们都会输出:hello world。

PHP 之外的变量:
GET 和 POST
PHP 几个函数可以判断变量的类型,例如:gettype(),is_array(),is_float(),is_int(),is_object() 和 is_string()。

PHP 常量 :
常量是一个简单值的标识符(名字)。
如同其名称所暗示的,在脚本执行期间该值不能改变(除了所谓的魔术常量,它们其实不是常量)。
常量默认为大小写敏感。通常常量标识符总是大写的。
和 superglobals 一样,常量的范围是全局的。

常量和变量有如下不同:

  • 常量前面没有美元符号($);
  • 常量只能用 define() 函数定义,而不能通过赋值语句;
  • 常量可以不用理会变量的作用域而在任何地方定义和访问;
  • 常量一旦定义就不能被重新定义或者取消定义;
  • 常量的值只能是标量。
           
Example #1 定义常量
<?php
define("CONSTANT""Hello world.");
echo CONSTANT// outputs "Hello world."
echo Constant// 输出 "Constant" 并发出一个提示性信息
?>


Example #2 使用关键字 const 定义常量
<?php
// 以下代码在 PHP 5.3.0 后可以正常工作
const CONSTANT 'Hello World';

echo CONSTANT;
?> 
                    --------------------------------------------------------
在php中定义常量时,const与define的区别?

Re:使用const使得代码简单易读,const本身就是一个语言结构,而define是一个函数。另外const在编译时要比define快很多。

(1).const用于类成员变量的定义,一经定义,不可修改。define不可用于类成员变量的定义,可用于全局常量。

(2).const可在类中使用,define不能。

(3).const不能在条件语句中定义常量。

(4).const采用一个普通的常量名称,define可以采用表达式作为名称。

 const  FOO = 'BAR'; 

 for ($i = 0; $i < 32; ++$i) {

  define('BIT_' . $i, 1 << $i);

}

(5).const只能接受静态的标量,而define可以采用任何表达式。

const BIT_5 = 1 << 5;  // 无效的invalid 

define('BIT_5', 1 << 5); // 有效的valid

(6).const定义的常量时大小写敏感的,而define可通过第三个参数(为true表示大小写不敏感)来指定大小写是否敏感。

例如:

define('FOO', 'BAR', true); 

echo FOO; // BAR

echo foo; // BAR

PHP 的“魔术常量”

几个 PHP 的“魔术常量”名称说明__LINE__文件中的当前行号。__FILE__文件的完整路径和文件名。如果用在被包含文件中,则返回被包含的文件名。自 PHP 4.0.2 起,__FILE__ 总是包含一个绝对路径(如果是符号连接,则是解析后的绝对路径),而在此之前的版本有时会包含一个相对路径。__DIR__文件所在的目录。如果用在被包括文件中,则返回被包括的文件所在的目录。它等价于 dirname(__FILE__)。除非是根目录,否则目录中名不包括末尾的斜杠。(PHP 5.3.0中新增) =__FUNCTION__函数名称(PHP 4.3.0 新加)。自 PHP 5 起本常量返回该函数被定义时的名字(区分大小写)。在 PHP 4 中该值总是小写字母的。__CLASS__类的名称(PHP 4.3.0 新加)。自 PHP 5 起本常量返回该类被定义时的名字(区分大小写)。在 PHP 4 中该值总是小写字母的。__METHOD__类的方法名(PHP 5.0.0 新加)。返回该方法被定义时的名字(区分大小写)。__NAMESPACE__当前命名空间的名称(大小写敏感)。这个常量是在编译时定义的(PHP 5.3.0 新增)
 
0 0
原创粉丝点击