小编Atl*_*tli的帖子

PHP类实例化.使用或不使用括号?

我一直认为 - 在没有构造函数参数的情况下 - 括号(花括号)在创建类实例时遵循类名,是可选的,并且您可以根据自己的想法包含或排除它们.

这两个陈述是平等的:

$foo = new bar;
$foo = new bar();
Run Code Online (Sandbox Code Playgroud)

我对吗?或者对我不知道的括号有一些意义吗?

我知道这听起来像一个RTM问题,但我一直在寻找(包括整个PHP OOP部分),我似乎无法找到一个直接的答案.

php oop class instantiation

70
推荐指数
2
解决办法
6082
查看次数

如何设置Chrome的用户脚本版本号

编辑:导致此问题的错误已得到修复.该@version标签现在工作在稳定的版本.见问题30760


嘿.

我一直想知道如何在Chrome的扩展选项卡中设置为用户脚本显示的版本号

示例图片http://atli.advefir.com/images/chrome_user-script_version.jpeg

到目前为止,明显的方法都失败了:

// ==UserScript==
// @version 1.1.5
// @uso:version 1.1.5
// ==/UserScript==
Run Code Online (Sandbox Code Playgroud)

我知道Greasemonkey for Firefox不使用版本值,但由于Chrome实际上显示的是版本号,我认为可能.

也许这是一个尚未实现的功能?
或者也许它从来没有打算存在,但它存在,因为扩展具有版本号,并且用户脚本当前作为扩展安装?

(我正在使用Linux测试版,版本:4.0.249.43,顺便说一下)

谢谢.

greasemonkey google-chrome version userscripts

12
推荐指数
1
解决办法
1880
查看次数

为什么在将二进制数据从PHP插入MySQL时使用bin2hex?

我听说有传言说在将二进制数据(文件等)插入MySQL时,你应该使用该bin2hex()函数并将其作为HEX编码值发送,而不是仅仅使用mysql_real_escape_string二进制字符串并使用它.

// That you should do
$hex = bin2hex($raw_bin);
$sql = "INSERT INTO `table`(`file`) VALUES (X'{$hex}')";

// Rather than
$bin = mysql_real_escape_string($raw_bin);
$sql = "INSERT INTO `table`(`file`) VALUES ('{$bin}')";
Run Code Online (Sandbox Code Playgroud)

据说这是出于性能原因.与MySQL如何处理大字符串以及如何处理HEX编码值有关

但是,我很难确认这一点.我所有的测试都表明确切的对话; 该bin2hex方法慢了约85%,使用了大约24%的内存.
(我在PHP 5.3,MySQL 5.1,Win7 x64上测试它 - 使用一个简单的插入循环.)

例如,此图显示了测试代码运行时mysqld进程的私有内存使用情况:

mysqld进程使用的私有字节http://atli.advefir.com/images/priv_mem_cropped.gif

有没有人有解释这个的解释或资源?

谢谢.

php mysql binary insert

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

PHP中的自动加载常量?

我希望如果我在一个单独的命名空间中定义常量,例如:

namespace config\database\mysql;

const HOST = 'localhost';
const USER = 'testusr';
const PASSWORD = 'testpwd';
const NAME = 'testdb';
Run Code Online (Sandbox Code Playgroud)

我可以__autoload用来自动包含它们:

function __autoload($className)
{
    echo "Autoload: {$className}\n";
    $class_file = str_replace('\\', '/', $className) . ".php";
    if(file_exists($class_file)) {
        include $class_file;
    }
}

echo config\database\mysql\HOST;
Run Code Online (Sandbox Code Playgroud)

但是,这不起作用.该__autoload不叫为恒,因为它是带班,留我一个Undefined constant错误.

我可以通过某种方式模拟__autoload常量类吗?

php const autoload

6
推荐指数
1
解决办法
3005
查看次数

为什么"-8 + etch15"会附加到此客户的PHP版本字符串中?

我有一个客户报告了与之相关的奇怪行为 PHP-#38146

我做了var_dump(phpversion()),我得到了:

string(14) "5.2.0-8+etch15" 
Run Code Online (Sandbox Code Playgroud)

什么是-8,和+ etch15,某种与Debian相关的PHP扩展?与硬化PHP或其他什么相关?这是否意味着他们基本上运行5.2.0版本?

php debian version

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