Heim >Backend-Entwicklung >PHP-Tutorial > 构造函数中的摘引

构造函数中的摘引

WBOY
WBOYOriginal
2016-06-13 13:00:07870Durchsuche

构造函数中的引用
刚开始学php 在php手册上看到 构造函数中的引用这一节 下面是我按照手册上写的 但是测试的结果 和手册上说的却不一样 实在是看不出来是哪里出错了 

<?php <br />
class Foo{<br />
	function Foo($name){<br />
		global $globalref;<br />
		$globalref[] = &$this;<br />
		<br />
		$this->setName($name);<br />
		<br />
		$this->echoName();<br />
		<br />
	}<br />
	<br />
	function echoName()<br />
	{<br />
		echo '<br />',$this->name;<br />
	}<br />
	<br />
	function setName($name)<br />
	{<br />
		$this->name = $name;<br />
	}<br />
}<br />
?><br />
<br />
<br />
<?php <br />
$bar1 = new Foo('set the name is php');<br />
<br />
$bar1->echoName();<br />
$globalref[0]->echoName();<br />
<br />
//print_r($globalref);<br />
//手册上说 如果重新设置个新name $bar1 和 $globalref[0] 是不一样的 但是测试的时候 这里输出是一样 <br />
$bar1->setName('set the name is java');<br />
$bar1->echoName();<br />
$globalref[0]->echoName();<br />
?>

------解决方案--------------------
不知道你的这段描述是出自什么“手册”
至少从代码上看是基于 php4 的,至于在 php4 中是否是那样表现,没有环境,就不得而知了

------解决方案--------------------
是的,php5的内核与php4的一点都一样,否则就不是php5而是php4.x了
与所有的软件系统一样,大版本号的改变,就表示发生了重大变化
虽然从php代码角度上看没有多大区别,但由于实现方法上的改变。可以认为根本就是两种语言
因此基于php4的解释,是不能用于php5的

你不是也看到手册中每个函数解释页上都有一个适用的版本号吗

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn