100*_*bps 13 php reference operators
只是尝试从PHPBench.com保存和修复源代码
并点击此错误(该网站已关闭,作者没有回答问题).这是来源:
<?php
// Initial Configuration
class SomeClass {
function f() {
}
}
$i = 0; //fix for Notice: Undefined variable i error
// Test Source
function Test6_2() {
//global $aHash; //we don't need that in this test
global $i; //fix for Notice: Undefined variable i error
/* The Test */
$t = microtime(true);
while($i < 1000) {
$obj =& new SomeClass();
++$i;
}
usleep(100); //sleep or you'll return 0 microseconds at every run!!!
return (microtime(true) - $t);
}
?>
Run Code Online (Sandbox Code Playgroud)
它是否是有效的语法?纠正我,如果我错了,但认为它创建了对SomeClass的引用,所以我们可以打电话new $obj()...提前感谢帮助
Bil*_*win 11
无论如何,对象总是通过引用存储.你不需要=&,正如夏洛特评论的那样,它已被弃用.
如果我错了,请纠正我,但认为它创建了对SomeClass的引用,因此我们可以调用new $ obj().
不,这不正确.的new操作者总是创建的类,而不是对类的引用作为一种类型的实例.
您可以通过使用类的名称创建一个字符串变量并使用它来创建变量对象实例化.
$class = "MyClass";
$obj = new $class();
Run Code Online (Sandbox Code Playgroud)
get_class()或ReflectionClass :: getName()等函数将类名返回为字符串.PHP中没有像Java中那样的"类引用"概念.
你最接近的是ReflectionClass :: newInstance(),但这是一种动态创建对象的不必要的方法.几乎在所有情况下,最好只使用new $class().