Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何使用变量从常量中获取值?_Php_Constants - Fatal编程技术网

Php 如何使用变量从常量中获取值?

Php 如何使用变量从常量中获取值?,php,constants,Php,Constants,我正在编写一个安装程序,将常量名称作为字符串数组传递,以检查它们是否存在,但在循环中,我还想检查这些值是否满足定义常量的要求 <?php $defines( 'FOO'=>Array('type'=>'int', 'min'=>0, 'max'=>100), 'BAR'=>Array('type'=>'bool'), 'ROO'=>Array('type'=>'path', 'write'=>true) );

我正在编写一个安装程序,将常量名称作为字符串数组传递,以检查它们是否存在,但在循环中,我还想检查这些值是否满足定义常量的要求

<?php

$defines(
    'FOO'=>Array('type'=>'int', 'min'=>0, 'max'=>100),
    'BAR'=>Array('type'=>'bool'),
    'ROO'=>Array('type'=>'path', 'write'=>true)
);

$errors = Array();
foreach($defines as $key=>$value) {
    if(!defined($key)) {
        $errors[] = $key . ' is not defined.';
    } else {
        $v = // how do i set this to the value defined for the define found.
    }
}
。。。其中,上面的
是根据
$key
值(保存
已定义的
检查的常量名称)访问已定义常量的方法


我使用的是PHP5.6

,我的问题的第一部分得到了解决,这要归功于关于该方法的实时PHP文档,并对其进行了跟踪。现在只需要关于第二部分的一些信息。欢迎你回答问题的第一部分:)1)那么你想检查常量是否满足数组中定义的要求?如果是,您有哪些可能的要求?2) 如果定义了常数并且满足了要求,您希望将
$v
设置为该值,对吗?如果是,您知道每次输入else语句时都会覆盖
$v
。@Rizier123-正确
$v
只是一个临时变量,但我也想知道是否可以使用类似于第二部分的内容。现在我知道了
constant()
命令,它看起来像
$v=($value['type'])constant($key)
(嘿,看起来很时髦XD)不确定我是否能理解你的意思,但是如果现在的问题是关于类型要求的话,你可能会查找
gettype()
/
settype()
,这取决于你是想将类型设置为该类型还是对照它进行检查。
$v = ($value['type']) ...