所有变量均区分大小写,包括普通变量以及 $_GET
,$_POST
,$_REQUEST
,$_COOKIE
,$_SESSION
,$_FILES
,$_ENV
,$GLOBALS
等。
$abc = 'abcd';
echo $abc; // 输出 abcd
echo $aBc; // 无输出,并报错 Notice: Undefined variable
echo $ABC; // 无输出,并报错 Notice: Undefined variable
使用 define 定义的常量是区分大写的。
define('ABC', 'Hello, world!');
echo ABC; // 输出 Hello, world!
echo abc; // 输出 abc,并报错 Notice: Use of undefined constant
$arr = array('one' => 'first');
echo $arr['one']; // 输出 first
echo $arr['One']; // 无输出,并报错 Notice: Undefined index
echo $Arr['one']; // 上面讲过,变量名区分大小写,所以无输出并报错 Notice: Undefined index
虽然这些不区分大小写,但坚持「大小写敏感」原则,建议还是使用与定义时相同大小写的名字。
class Foo
{
public static function bar()
{
echo 'bar';
}
public function baz()
{
echo 'baz';
}
}
$obj = new Foo(); // 成功实例化
$obj->baz(); // 输出 baz
$obj->Baz(); // 输出 baz
$obj = new foo(); // 成功实例化
$obj->baz(); // 输出 baz
$obj->Baz(); // 输出 baz
Foo::bar(); // 输出 bar
foo::bar(); // 输出 bar
Foo::Bar(); // 输出 bar
foo::Bar(); // 输出 bar
包括:__LINE__
、__FILE__
、__DIR__
、__FUNCTION__
、__CLASS__
、__METHOD__
、__NAMESPACE__
等都不区分大小写。
<?php
echo __LINE__; // 输出 2
echo __line__; // 输出 3
NULL
、TRUE
、FALSE
不区分大小写如:
类型 | 说明 |
---|---|
| 转换成整型 |
| 转换成布尔型 |
| 转换成浮点型 |
| 转换成字符串 |
| 转换成数组 |
| 转换成对象 |
一般我们都小写,问题不大。
总体来说,容易搞不明白的就是变量、常量、类名、方法名和函数名,把这些记住就行了。