本文目录一览:
- php如何定义常量,系统常量和使用常量
- php如何定义一个常量数组
- 在PHP里面如何定义一个常量?请举例说明
- php const用法详解 以及php常量定义const和define的异同
- php变量定义方法
- PHP 常量的定义及如何设置
php如何定义常量,系统常量和使用常量
定义常量
define('NAME', 'hello');
echo NAME; // hello
PHP 自 5.3 后可以直接通过 const
关键字来定义常量
const NAME = 'hello';
echo NAME; // hello
系统常量可以直接打印,如:
echo __DIR__; // 当前执行文件的路径
echo __FILE__; // 当前执行的文件地址及文件名
php如何定义一个常量数组
define
常量的值;
$config = array('localhost', '127.0.0.1', 'user', 'pwd');
$config = serialize($config); // serialize — 产生一个可存储的值的表示
define('DB_CONFIG', $config); // 定义一个DB_CONFIG常量
使用时用:
unserialize() 从已存储的表示中创建 PHP 的值
print_r(unserialize(DB_CONFIG)); // 还原为数组状态并打印
根据类定义静态数组
class Constants {
public static $array = array('localhost', '127.0.0.1', 'user', 'pwd');
}
使用:
print_r(Constants::$array); // 打印静态数组
在PHP里面如何定义一个常量?请举例说明
define(常量名, 常量值, [true])
[true]
是可选参数,作用是不区分大小写
例子:
define("name", "张三")
php const用法详解 以及php常量定义const和define的异同
常量是一个简单值的标识符(名字)。如同其名称所暗示的,在脚本执行期间该值不能改变(除了所谓的魔术常量,它们其实不是常量)。常量默认为大小写敏感。通常常量标识符总是大写的。
可以用 define()
函数来定义常量。在 PHP 5.3.0 以后,可以使用 const
关键字在类定义的外部定义常量,先前版本 const
关键字只能在类(class)中使用。一个常量一旦被定义,就不能再改变或者取消定义。
常量只能包含标量数据(boolean,integer,float 和 string)。可以定义 resource 常量,但应尽量避免,因为会造成不可预料的结果。
可以简单的通过指定其名字来取得常量的值,与变量不同,不应该在常量前面加上 $
符号。如果常量名是动态的,也可以用函数 constant()
来获取常量的值。用 get_defined_constants()
可以获得所有已定义的常量列表。
常量和变量有如下不同:
- 常量前面没有美元符号($);
- 常量只能用
define()
函数定义,而不能通过赋值语句; - 常量可以不用理会变量的作用域而在任何地方定义和访问;
- 常量一旦定义就不能被重新定义或者取消定义;
- 常量的值只能是标量。
Example #1 定义常量
define("CONSTANT", "Hello world.");
echo CONSTANT; // outputs "Hello world."
echo Constant; // 输出 "Constant" 并发出一个提示性信息
Example #2 使用关键字 const 定义常量
// 以下代码在 PHP 5.3.0 后可以正常工作
const CONSTANT = 'Hello World';
echo CONSTANT;
Example #3 合法与非法的常量名
// 合法的常量名
define("FOO", "something");
define("FOO2", "something else");
define("FOO_BAR", "something more");
// 非法的常量名
define("2FOO", "something");
// 下面的定义是合法的,但应该避免这样做:(自定义常量不要以__开头)
// 也许将来有一天PHP会定义一个__FOO__的魔术常量
// 这样就会与你的代码相冲突
define("__FOO__", "something");
【问】在php中定义常量时,const与define的区别?
【答】使用 const
使得代码简单易读,const
本身就是一个语言结构,而 define
是一个函数。另外 const
在编译时要比 define
快很多。
const
用于类成员变量的定义,一经定义,不可修改。define
不可用于类成员变量的定义,可用于全局常量。const
可在类中使用,define
不能。const
不能在条件语句中定义常量。
if (...) {
const FOO = 'BAR'; // 无效的invalid
}
if (...) {
define('FOO', 'BAR'); // 有效的valid
}
const
采用一个普通的常量名称,define
可以采用表达式作为名称。
const FOO = 'BAR';
for ($i = 0; $i < 32; ++$i) {
define('BIT_' . $i, 1 << $i);
}
const
只能接受静态的标量,而define
可以采用任何表达式。
const BIT_5 = 1 << 5; // 无效的invalid
define('BIT_5', 1 << 5); // 有效的valid
const
定义的常量时大小写敏感的,而define
可通过第三个参数(为true表示大小写不敏感)来指定大小写是否敏感。
define('FOO', 'BAR', true);
echo FOO; // BAR
echo foo; // BAR
相关函数:
define — 定义一个常量
说明:
bool define ( string $name , mixed $value [, bool $case_insensitive = false ] )
参数:
name
:常量名。value
:常量的值;仅允许标量和 null。标量的类型是 integer,float,string 或者 boolean。也能够定义常量值的类型为 resource,但并不推荐这么做,可能会导致未知状况的发生。case_insensitive
:如果设置为 TRUE,该常量则大小写不敏感。默认是大小写敏感的。比如, CONSTANT 和 Constant 代表了不同的值。(Note: 大小写不敏感的常量以小写的方式储存。) 返回值: 成功时返回 TRUE,或者在失败时返回 FALSE。
constant — 返回一个常量的值
说明:
mixed constant ( string $name )
通过 name 返回常量的值。当你不知道常量名,却需要获取常量的值时,constant()
就很有用了。也就是常量名储存在一个变量里,或者由函数返回常量名。该函数也适用于 class constants。
参数:
name
:常量名。 返回值: 返回常量的值。如果常量未定义则返回 NULL。
defined — 检查某个名称的常量是否存在
说明:
bool defined ( string $name )
检查该名称的常量是否已定义。
Note: 如果你要检查一个变量是否存在,请使用 isset()
。defined()
函数仅对 constants 有效。如果你要检测一个函数是否存在,使用 function_exists()
。
参数:
name
:常量的名称。 返回值: 如果该名称的常量已定义,返回 TRUE;未定义则返回 FALSE。
get_defined_constants
Returns an associative array with the names of all the constants and their values。这包括那些由扩展以及由 define()
函数创建的常量。
php变量定义方法
PHP语法吸收了C语言、Java和Perl的特点,利于学习,使用广泛,主要适用于Web开发领域。以下是为大家分享的php变量定义方法,供大家参考借鉴,欢迎浏览!
- 定义常量
define("CONSTANT", "Hello world.");
常量只能包含标量数据(boolean,integer,float 和 string)。 调用常量时,只需要简单的用名称取得常量的值,而不能加“$”符号,如:
echo CONSTANT;
注: 常量和(全局)变量在不同的名字空间中。这意味着例如 TRUE 和 $TRUE 是不同的。 2. 普通变量
$a = "hello";
- 可变变量(使用两个美元符号($))
$$a = "world";
两个变量都被定义了:
$a 的内容是“hello”并且 $hello 的内容是“world”。
因此,可以表述为:
echo "$a ${$a}"; 或者 echo "$a $hello"; 它们都会输出:hello world
要将可变变量用于数组,必须解决一个模棱两可的问题。这就是当写下 $$a[1]
时,解析器需要知道是想要 $a[1]
作为一个变量呢,还是想要 $$a
作为一个变量并取出该变量中索引为 [1]
的值。解决此问题的语法是,对第一种情况用 ${$a[1]}
,对第二种情况用 ${$a}[1]
。
4. 静态变量
在函数内部
static $a = 0;
注意:声明中用表达式的结果对其赋值会导致解析错误如 static $a =3+3;
(error)
静态变量仅在局部函数域中存在(函数内部),函数执行完之后,变量值不会丢失,可用于递归调用
5. 全局变量
在函数体内定义的 global
变量,函数体外可以使用,在函数体外定义的 global
变量不能在函数体内使用,在全局范围内访问变量可以用特殊的 PHP 自定义 $GLOBALS
数组:
如:
$GLOBALS["b"] = $GLOBALS["a"] + $GLOBALS["b"];
在一个函数域内用 global
语句导入的一个真正的全局变量实际上是建立了一个到全局变量的引用
global $obj;
注:对于变量的 static
和 global
定义是以引用的方式实现的
6. 给变量赋值:传地址赋值(简单引用):
$bar = &$foo; // 加符号到将要赋值的变量前
改动新的变量将影响到原始变量,这种赋值操作更加快速 注意:只有命名变量才可以传地址赋值 注意:如果
$bar = &$a;
$bar = $foo;
改变 $bar
的值只能改变变量 foo
的值,而不改变 a
的值(引用改变了)
7. PHP 超全局变量
$GLOBALS
:包含一个引用指向每个当前脚本的全局范围内有效的变量。该数组的键标为全局变量的名称。从 PHP 3 开始存在$GLOBALS
数组。$_SERVER
:变量由 Web 服务器设定或者直接与当前脚本的执行环境相关联。类似于旧数组$HTTP_SERVER_VARS
数组(依然有效,但反对使用)。$_GET
:经由 HTTP GET 方法提交至脚本的变量。$_POST
:经由 HTTP POST 方法提交至脚本的变量。$_COOKIE
:经由 HTTP Cookies 方法提交至脚本的变量。$_FILES
:经由 HTTP POST 文件上传而提交至脚本的变量。 文件上传表单中要有enctype="multipart/form-data"
$_ENV
:执行环境提交至脚本的变量。$_REQUEST
:经由 GET,POST 和 COOKIE 机制提交至脚本的变量,因此该数组并不值得信任。所有包含在该数组中的变量的存在与否以及变量的顺序均按照 php.ini 中的variables_order
配置指示来定义。该数组没有直接模拟 PHP 4.1.0 的早期版本。参见import_request_variables()
。 注意:自 PHP 4.3.0 起,$_FILES
中的文件信息不再存在于$_REQUEST
中。$_SESSION
:当前注册给脚本会话的变量。 如何禁用phpinfo()
:
php.ini中
disable_functions = phpinfo()
重启web服务器。
php中的常量
常量只能用 define(常量名,常量值);
常量只能包含标量数据(boolean,integer,float 和 string)。
可以简单的通过指定其名字来取得常量的值,不要在常量前面加上 $
符号。如果常量名是动态的,也可以用函数 constant()
来读取常量的值。用 get_defined_constants()
可以获得所有已定义的常量列表。
注: 常量和(全局)变量在不同的名字空间中。这意味着例如 TRUE 和 $TRUE 是不同的。
如果使用了一个未定义的常量,PHP 假定想要的是该常量本身的名字,如同用字符串调用它一样(CONSTANT 对应 "CONSTANT")。此时将发出一个 E_NOTICE 级的错误。参见手册中为什么 $w3sky[bar]
是错误的(除非事先用 define()
将 bar 定义为一个常量)。如果只想检查是否定义了某常量,用 defined()
函数。
常量和变量不同:
- 常量前面没有美元符号($);
- 常量只能用
define()
函数定义,而不能通过赋值语句; - 常量可以不用理会变量范围的规则而在任何地方定义和访问;
- 常量一旦定义就不能被重新定义或者取消定义;
- 常量的值只能是标量。 定义常量
define("CONSTANT", "Hello world.");
echo CONSTANT; // outputs "Hello world."
echo Constant; // outputs "Constant" and issues a notice.
PHP 常量的定义及如何设置
使用 define()
函数设置常量,如定义常量 GREETING:
define("GREETING", "Welcome to DTMobile!");
echo GREETING;
变量定义:变量名=$
+标识符,如定义变量a:
$a = 1;
echo $a;