Grey_EM
Guest
Маленькая загадка от Grey_EM
Здравствуйте мои дорогие. Как вы тут, не скучаете?
Ну тогда есть у меня малюсенькая загадка для умных.
Тому кто разгадает ее от меня пиво, а живу я в Питере.
Итак вопрос , почему имеем разные значания?
Два малюсеньких файла.
Мои результаты (php 4.2.1)
Plain
In CoreError
$this->test = 1
$GLOBALS["coreError"]->test = 1
In someMethod
$this->test = 2
$GLOBALS["coreError"]->test = 2
In Class
In CoreError
$this->test = 1
$GLOBALS["coreError"]->test = 1
In someMethod
$this->test = 2
$GLOBALS["coreError"]->test = 1
Повторяю вопрос , почему имеем разные значания?
Здравствуйте мои дорогие. Как вы тут, не скучаете?
Ну тогда есть у меня малюсенькая загадка для умных.
Тому кто разгадает ее от меня пиво, а живу я в Питере.
Итак вопрос , почему имеем разные значания?
Два малюсеньких файла.
PHP:
--- CoreError.phtml -----
<?php
require_once("CoreError.inc");
print("Plain <br>");
$coreError = new CoreError();
$coreError->someMethod();
print("In Class <br>");
$coreErrorTest = new CoreErrorTest();
/*
*
* @version 0.6
*/
class CoreErrorTest
{
/*
* @return void
* @version 0.6
* @private
*/
function CoreErrorTest()
{
$coreError = new CoreError();
$coreError->someMethod();
}//end func CoreErrorTest
} //end class CoreErrorTest
?>
--- CoreError.inc -----
<?php
/*
*
* @version 0.6
*/
class CoreError
{
var $test;
/*
* @return void
* @version 0.6
* @private
*/
function CoreError()
{
$GLOBALS["coreError"] = &$this;
$this->test = 1;
print("In CoreError" . "<br>");
print('$this->test = ' . $this->test . "<br>");
print('$GLOBALS["coreError"]->test = ' . $GLOBALS["coreError"]->test . "<br>");
}//end func CoreError
/*
* @return void
* @version 0.6
* @private
*/
function someMethod()
{
$this->test = 2;
print("In someMethod" . "<br>");
print('$this->test = ' . $this->test . "<br>");
print('$GLOBALS["coreError"]->test = ' . $GLOBALS["coreError"]->test . "<br>");
}//end func someMethod()
} //end class CoreError
?>
Plain
In CoreError
$this->test = 1
$GLOBALS["coreError"]->test = 1
In someMethod
$this->test = 2
$GLOBALS["coreError"]->test = 2
In Class
In CoreError
$this->test = 1
$GLOBALS["coreError"]->test = 1
In someMethod
$this->test = 2
$GLOBALS["coreError"]->test = 1
Повторяю вопрос , почему имеем разные значания?