我一直认为 - 在没有构造函数参数的情况下 - 括号(花括号)在创建类实例时遵循类名,是可选的,并且您可以根据自己的想法包含或排除它们.
这两个陈述是平等的:
$foo = new bar;
$foo = new bar();
Run Code Online (Sandbox Code Playgroud)
我对吗?或者对我不知道的括号有一些意义吗?
我知道这听起来像一个RTM问题,但我一直在寻找(包括整个PHP OOP部分),我似乎无法找到一个直接的答案.
编辑:导致此问题的错误已得到修复.该@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,顺便说一下)
谢谢.
我听说有传言说在将二进制数据(文件等)插入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
有没有人有解释这个的解释或资源?
谢谢.
我希望如果我在一个单独的命名空间中定义常量,例如:
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-#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版本?