相关疑难解决方法(0)

如何在PHP中定义效率?

C++预处理器#define完全不同.

PHP define()与创建var有什么不同吗?

define("SETTING", 0);  
$something = SETTING;
Run Code Online (Sandbox Code Playgroud)

VS

$setting = 0;  
$something = $setting;
Run Code Online (Sandbox Code Playgroud)

php c-preprocessor

20
推荐指数
3
解决办法
2万
查看次数

可以定义很多常量会导致性能或内存问题吗?

我有一个网站使用了很多常量,这些常量是这样定义的,例如:

define('CONSTANT', 1)
Run Code Online (Sandbox Code Playgroud)

我目前有一个大约200个这样的定义列表.每次页面加载时都会运行此列表.这会严重影响我的表现或记忆力吗?

php memory performance

13
推荐指数
2
解决办法
2252
查看次数

在PHP中处理全局变量的最有效方法是什么?

似乎有些人讨厌全局变量,但如果你能解释如何在没有它们的情况下进行编码,那我就全都耳朵了.

否则,我有几个选择,我很好奇哪个是最好的长期.考虑一下我有一个不会在持续时间内改变的变量.这是一个静态的全球性.我可以用:

$_SESSION['var'] = constantval;
define('var', constantval);
var = constantval;
Run Code Online (Sandbox Code Playgroud)

而我真正好奇的是:

function my_constants($which)
{
    switch ($which) {
        case 'var':
            return 'constantval';
    }
}
Run Code Online (Sandbox Code Playgroud)

在最后一个中,目标是保持变量超出全局范围,以牺牲一些处理器成本来节省内存.节省的内存值得循环吗?各种其他类型的全球宣言之间是否存在值得注意的差异?

php globals

5
推荐指数
1
解决办法
218
查看次数

在PHP中使用未定义的类常量NOTICE的原因(使用未定义的常量)

我在代码中发现了一个关于类常量的怪异问题。虽然代码似乎可以正常运行,但我无法弄清PHP的原因注意:

Use of undefined constant PAYMENT_ERROR - assumed 'PAYMENT_ERROR' in /src/Micro/Payments/Manager.php on line 146

Manager.php函数中的代码如下所示:

$code = Result::PAYMENT_ERROR;
return new Result($code, $errMsg); // <- line 146 - causes PHP Notice
Run Code Online (Sandbox Code Playgroud)

对我来说奇怪的是,$code变量设置正确且不会触发任何通知。仅实例化Result确实如此。

Result类非常简单:

class Result
{
    // ... boilerplate code skipped ...
    // constant is defined like this:
    const PAYMENT_ERROR = 2;

    public function __construct($code, array $messages)
    {
        $this->code = $code;
        $this->messages = $messages;
    }

    // ... other functions skipped as they are not relevat ...
}
Run Code Online (Sandbox Code Playgroud)

我将Result的常量传递给它自己的构造函数是否有问题?

php constants

4
推荐指数
1
解决办法
8518
查看次数

是否可以在PHP中在运行时创建静态变量?

假设一个类foo有1个静态变量bar.是否可以编写PHP代码,并在运行时bar2foo类创建新的静态变量?

php

2
推荐指数
1
解决办法
2600
查看次数

内部的PHP常量

在PHP中有常量问题,想知道是否有人可以解释:

这很有效

const _ROOT = 'd:/aphp/www';

echo "r="._ROOT;
Run Code Online (Sandbox Code Playgroud)

就像这样:

if (true) 
        define('_ROOT','d:/aphp/www');

echo "r="._ROOT;
Run Code Online (Sandbox Code Playgroud)

但这会给出错误:解析错误:语法错误,意外T_CONST

if (true) 
    const _ROOT = 'd:/aphp/www';

echo "r="._ROOT;
Run Code Online (Sandbox Code Playgroud)

我使用的是php 5.3.2

php constants

2
推荐指数
1
解决办法
1678
查看次数

const PHP 解析错误

// define('DOCROOT', realpath(dirname(__DIR__)));
// good

const DOCROOT = realpath(dirname(__DIR__));
// PHP Parse error:  syntax error, unexpected '(', expecting ',' or ';' in
Run Code Online (Sandbox Code Playgroud)

为什么会出错?

php

0
推荐指数
1
解决办法
2695
查看次数

PHP:定义它时的未定义常量

我在PHP中收到以下错误:

注意:使用未定义的常量CONSTANT

在我定义它的确切行上:

define(CONSTANT, true);
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?我定义了它,为什么它会说"Undefined constant"?

php constants undefined

-3
推荐指数
2
解决办法
519
查看次数