如何在php中使用define

时间:2014-10-28 09:31:29

标签: php

我有一个带有一些键值对的数组,它在我整个项目中的多个位置重写。所以,我想在一个地方定义并使用它。

阵列是 array('isValid'=>'false','message'=>'Invalid login credentials, please try again');

我试过这种方式,但它没有奏效 define ('kCheckValidUserSuccessResponse',array('isValid'=>'false','message'=>'Invalid login credentials, please try again'));

在顶部定义数组并使用它,但是当我回显它时,某些值如何不可用。 echo kCheckValidUserSuccessResponse;

非常感谢任何帮助。

4 个答案:

答案 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);