Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/226.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/magento/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 包含的文件何时被视为已执行?_Php_Magento - Fatal编程技术网

Php 包含的文件何时被视为已执行?

Php 包含的文件何时被视为已执行?,php,magento,Php,Magento,包含的文件何时被视为已执行 寄存器\关闭\函数$callback[,$params] 注册要在脚本执行完成或调用exit后执行的回调 是在包含的文件中的代码完成时执行回调,还是在包含回调的脚本完成时执行回调 我考虑 这个问题不能回答解释器是将文件编译成一个大文件还是单独执行,无论是在演示文稿中还是在答案中 关于原创谢谢评论。 在magento Varien_中,自动加载类有一个构造函数: public function __construct() { register_shutdown_

包含的文件何时被视为已执行

寄存器\关闭\函数$callback[,$params]

注册要在脚本执行完成或调用exit后执行的回调

是在包含的文件中的代码完成时执行回调,还是在包含回调的脚本完成时执行回调

我考虑

这个问题不能回答解释器是将文件编译成一个大文件还是单独执行,无论是在演示文稿中还是在答案中

关于原创谢谢评论。 在magento Varien_中,自动加载类有一个构造函数:

public function __construct()
{
    register_shutdown_function(array($this, 'destroy'));//<- this is what the question is about
    $this->_isIncludePathDefined = defined('COMPILER_INCLUDE_PATH');
    if (defined('COMPILER_COLLECT_PATH')) {
        $this->_collectClasses  = true;
        $this->_collectPath     = COMPILER_COLLECT_PATH;
    }
    self::registerScope(self::$_scope);
}

该文件包含在Mage.php中,我想知道函数destroy是否在类定义完成后立即执行。在仔细考虑之后,您可以看到该函数无论如何都不会被调用。类定义没有实例化,但这并不会降低其含义。

在阅读了include关键字之后,我测试了它是如何工作的,当主脚本完成时,脚本似乎被视为已执行

考虑以下代码:

<?php 
$hello = 'Hello';
include 'world.php';
world.php


输出将是Hello world

你可以看看资料来源。你说的一个大文件和单独的文件是什么意思?当然,一个脚本在所有包含都完成之后完成,然后是原始脚本本身。否则就没有意义了。永远不会有多次完成。@OlaviSau,好吧,我明白了,那么我想你已经回答了你自己下面的问题。在任何情况下,include都没有什么特别之处,它只是一块复制并粘贴到调用脚本中的文本。所以最后,就像你有一个巨大的脚本,里面有所有的东西。执行只需在最后一行完成,然后执行关闭函数。感谢您的澄清。请你把这个问题放在你的问题中好吗?这将帮助大家知道你对“magento”“final”处理以及PHP感兴趣。“PHP”关闭序列是一个可以添加到“PHP退出时调用”的函数列表。现在,它们最好是“有效的”,否则调试时可能会非常混乱。但它只是更多的PHP。说真的,保持简单,一切都会好起来的。。。。在主脚本完成、所有资源清理完毕、数据库连接关闭等之后……谢谢,我真的没有找到一个简洁的答案,最接近的答案是PHP脚本到底是如何执行的?这是关于它是如何编译成机器代码的,而不是它的内部结构是如何工作的。
<?php
register_shutdown_function('world');

function world()
{
    echo ' world!';
}