Php 在类方法上返回布尔值

Php 在类方法上返回布尔值,php,Php,我有一个有几个方法的类 deleteUploadedFile()和currentUploadedFiles() currentUploadedFiles(),基本上在会话数组上循环,并在屏幕上显示它,如图所示。代码示例: function currentUploadedFiles() { if(isset($_SESSION['fileArray']) && $this->count > 0) { ech

我有一个有几个方法的类

deleteUploadedFile()
currentUploadedFiles()

currentUploadedFiles(),基本上在会话数组上循环,并在屏幕上显示它,如图所示。代码示例:

function currentUploadedFiles()
    {
        if(isset($_SESSION['fileArray']) && $this->count > 0)
        {
            echo '<p style="clear:both">Current files uploaded list:</p>';
            echo '<ol>';

            foreach($_SESSION['fileListing'] as $key => $value )
            {
                echo '<li>'. $value .' <a href="'.$_SERVER["PHP_SELF"].'?id='.$key.'">[Remove File]</a></li>';
            }

            echo "</ol>\n\r";
            echo "<p> Current file size allowance: ". $this->_returnRemainingSessionFileSize() ." of 8 MB";
        } else {
            echo '<p style="clear:both">No files have been uploaded yet</p>';
        }    

        if($this->deleteUploadedFile() === true)
        {
            echo '<p>File has now been deleted from our records.</p>';
        }
    }
函数currentUploadedFiles()
{
如果(isset($\u会话['fileArray'])&&&$this->count>0)
{
echo“

当前上传的文件列表:

”; 回声'; foreach($\会话['fileListing']作为$key=>$value) { 回显“
  • ”.$value.“
  • ”; } 回显“\n\r”; echo“当前文件大小允许值:“.$this->\u returnRemainingSessionFileSize()”为8 MB; }否则{ echo'

    尚未上载任何文件; } 如果($this->deleteUploadedFile()==true) { echo文件现在已从我们的记录中删除。

    ; } }
    deleteUploadedFile()方法,基本上在提交表单时,它会从服务器上删除文件并从会话数组中删除条目。示例代码:

    function deleteUploadedFile()
        {
            (int) $id = $_GET['id'];
            (bool) $deleted = false;
    
            if (file_exists($this->target_path.'/'.$_SESSION['fileArray'][$id]))
            {
    
                $_SESSION['fileSize'] -= $this->_checkSessionFileSize($id);
    
                if (unlink($this->target_path.'/'.$_SESSION['fileArray'][$id]))
                {
    
                    $deleted = true; //'<p>File has now been deleted from our records.</p>';
                    unset($_SESSION['fileArray'][$id]);
                    unset($_SESSION['fileListing'][$id]);
    
    
                }
    
            }
    
            return $deleted;
    
        }
    
    函数deleteUploadedFile()
    {
    (int)$id=$_GET['id'];
    (bool)$deleted=false;
    如果(文件_存在($this->target_path.'/'.$_SESSION['fileArray'][$id]))
    {
    $\u SESSION['fileSize']-=$this->\u checksessionlesize($id);
    if(取消链接($this->target_path.'/'.$_会话['fileArray'][$id]))
    {
    $deleted=true;/'文件现在已从我们的记录中删除。

    '; 取消设置($_会话['fileArray'][$id]); 取消设置($_会话['fileListing'][$id]); } } 返回$deleted; }
    我的控制器基本上检查文件id是否设置,然后检查数组id是否设置,然后调用
    deleteUploadedFile()
    方法,然后调用
    currentUploadedFiles()
    方法


    问题是,为什么我在
    deleteUploadedFile()
    中转储$deleted var时得到bool(true),但在
    currentUploadedFiles()方法中得到bool(false)。听起来好像我把范围搞乱了?

    看起来$deleted在delete函数的本地范围内

    像下面这样的方法应该可以奏效

    class theClass
    {
        function __construct()
        {
            $this->deleted = false
        }
    
        function delete()
        {
            $this->deleted = true;
        }
    
        function upload()
        {
            var_dump($this->deleted);
        }
    
    }
    

    如何准确地
    var_转储方法中的那些变量?@Nicolás-echo“”;var_dump($已删除);回声';在返回之前,$已删除;在deleteUploadedFile()方法中。@Jared:np。很高兴我能帮忙:)