我有一个带有一些键值对的数组,它在我整个项目中的多个位置重写。所以,我想在一个地方定义并使用它。
阵列是
array('isValid'=>'false','message'=>'Invalid login credentials, please try again');
我试过这种方式,但它没有奏效
define ('kCheckValidUserSuccessResponse',array('isValid'=>'false','message'=>'Invalid login credentials, please try again'));
在顶部定义数组并使用它,但是当我回显它时,某些值如何不可用。
echo kCheckValidUserSuccessResponse
;
非常感谢任何帮助。
答案 0 :(得分:3)
您无法在define
中使用数组。引用from the documentation:
仅允许标量和空值。标量值是整数,浮点数,字符串或布尔值。
如果要重用数组,只需将其存储在常规变量中:
$kCheckValidUserSuccessResponse = array('isValid'=>'false','message'=>'Invalid login credentials, please try again');
请注意变量范围。如果你想在一个函数中使用它,你需要使用global
:
global $kCheckValidUserSuccessResponse;
或者,您可以将其作为静态值存储在类中。
class MyMessages {
static $kCheckValidUserSuccessResponse = array('isValid'=>'false','message'=>'Invalid login credentials, please try again');
}
然后你可以这样访问它,无论变量范围如何:
MyMessages::kCheckValidUserSuccessResponse
答案 1 :(得分:1)
定义
Defines a named constant, but not define a variable.
例如
<?php
define('PI', 3.14);
define('PASSWORD', '123456');
echo PI;
echo PASSWORD;
答案 2 :(得分:1)
常量只能评估为标量值
class Error {
public $my_error1 = array(
'isValid'=>'false',
'message'=>'Invalid login credentials, please try again'
);
}
$error = new Error();
print_r($error->my_error1);
你可以在任何代码中调用错误 熟悉OOP编程
答案 3 :(得分:0)
如果只是将短信全部放在一个地方(并帮助提供多语言支持),我会这样做:
define('INVALID_LOGIN_MESSAGE','Invalid login credentials, please try again');
define('INVALID_LOGIN_VALID','false');
稍后在软件中....
array('isValid'=> INVALID_LOGIN_VALID ,'message'=> INVALID_LOGIN_MESSAGE);