‘壹’ php如何添加预定义常量或变量
常量使用define语句定义即可
全局变量可以定义到全局变量数组$GLOBALS中
参考手册 : http://php.net/manual/zh/rese...
看题主的问法,感觉"环境变量"可能符合题主要求
nginx配置PHP server的时候可以增加以下指令
fastcgi_param CUSTOM_ENV_VAR "my_env_value";
之后只要是通过nginx访问的PHP请求,在任何代码中中使用 $_SERVER['CUSTOM_ENV_VAR'] 就能取到你需要的值
又或者在fastcgi的配置文件中增加一行:
env[CUSTOM_ENV_VAR]="my_env_value"
之后只要是php-fastcgi处理的PHP文件,都可以通过 getenv('CUSTOM_ENV_VAR'); 来获取设置的值
如果题主确实打算不亲自define而要得到类似E_ALL那样的常量的话,就需要写点C了
题主可以新建一个自己的扩展(或者直接随便找个你会编译的扩展也行),在PHP_MINIT_FUNCTION中使用以下宏来定义自己的常量
REGISTER_STRINGL_CONSTANT("MY_SITE_VERSION", "1.0", 3, CONST_PERSISTENT);
之后重新编译PHP即可.
‘贰’ 如何获取php一个类中定义的常量
ReflectionClass::getConstants
自己翻手册。
‘叁’ php如何定义一个常量数组
<?php
constARR=['a','b'];
var_mp(ARR);
php版本要>=5.6才能使用,如果是5.6以下版本可以考虑把数组序列化后赋值给常量
‘肆’ 消除php中未定义常量
在首页中写上这个函数就可以了error_report(0)
‘伍’ 深入分析php中const和define定义常量的区别
<?php
define('PHP', 'I love PHP'); // 在类外面通常这样定义常量
if (defined('PHP')) {
echo 'PHP is defined!';
}
class MyClass
{
// 常量的值将始终保持不变。在定义和使用常量的时候不需要使用$符号
const CONSTANT = 'constant value';
function showConstant() {
echo self::CONSTANT . '<br/>';
}
}
echo MyClass::CONSTANT . '<br/>';
$classname = 'MyClass';
echo $classname::CONSTANT . '<br/>'; // PHP 5.3.0 之后
$class = new MyClass();
$class->showConstant();
echo $class::CONSTANT.'<br/>'; // PHP 5.3.0 之后
print_r(get_defined_constants()); // 可以用get_defined_constants()获取所有定义的常量
‘陆’ 关于php类中定义常量问题
代码试修改如下:
publicfunctionxx(){
echo"childtest";
echoself::tt;
}
‘柒’ PHP常量是什么
1 <?php
2 define("CONSTANT", "Hello world.");
3 echo CONSTANT; // outputs "Hello world."
4 echo Constant; // outputs "Constant" and issues a notice.
5
6 define("GREETING", "Hello you.", true);
7 echo GREETING; // outputs "Hello you."
8 echo Greeting; // outputs "Hello you."
9
10 ?>
常量前面没有美元符号($);
常量只能用 define() 函数定义,而不能通过赋值语句;
常量可以不用理会变量范围的规则而在任何地方定义和访问;
常量一旦定义就不能被重新定义或者取消定义;
常量的值只能是标量。
‘捌’ php通过定义常量连接数据库出错
//config.php
<?php
define('HOST','localhost');
define('USERNAME','root');
define('PASSWORD','root');
?>
//connect.php
<?php
require_once('1.php');
$conn=newmysqli(HOST,USERNAME,PASSWORD);
var_mp($conn);
?>
我这里测试了是没有问题的,你看看是不是你的路径或者某个字母写错了
‘玖’ PHP 常量定义 语句 求解读
if(strpos(__FILE__,DIRECTORY_SEPARATOR)!==FALSE){
$res=substr(__FILE__,0,strrpos(__FILE__,DIRECTORY_SEPARATOR)).'/';
}else{
$res='./';
}
define('R_P',$res);
这样你就看懂了吧。。。
‘拾’ php如何定义常量,系统常量和使用常量
定义常量
define('NAME','hello');
echoNAME;//hello
PHP 自 5.3 后可以直接通过 const 关键字来定义常量
constNAME='hello';
echoNAME;//hello
系统常量可以直接打印,如:
echo__DIR__;//当前执行文件的路径
echo__FILE__;//当前执行的文件地址及文件名