【问题标题】:PHP- Todo object oriented programPHP- Todo 面向对象程序
【发布时间】:2023-03-23 02:56:01
【问题描述】:

我在 php 中有一个 todo 程序,但我不断收到此错误( 致命错误:未捕获的错误:在第 38 行的 C:\wamp64\www\classes.php 中的 null 上调用成员函数已完成()

在第 38 行调用一个成员函数 completed() ),, 所以这个程序有我可以设置/创建的任务,这些任务可以单独设置为已完成(属性可以访问哪个),例如,如果可以设置其中一些任务或任务来完成该任务或那些未设置为完成的任务中的那些任务将被删除并执行通知浏览器上的列表。有人可以帮忙吗??

<?PHP

    Class main{
     
    public $completed=false;     
    public $name;
    
    function set_task($desc){
                
            $this->name=$desc;
    
       } 
    function get_task(){
             return $this->name;   
    
       }
       
     public function completed(){
    
        if($this->completed==false){
    
            return true;
        }else{
            return false;
        } 
    
    } 
    } 
    
    $task=new main();
    
     $t1=$task->`set_task`("Go to the store");
     $t2=$task->`set_task`("Do homework");
     $t3=$task->`set_task`("Take a run");
    
    $Tasks=[];
    
    $t1->completed();
    
    array_push($Tasks,$t1);
    array_push($Tasks,$t2);
    array_push($Tasks,$t3);
    
    
    foreach($Tasks as $task){
            
    if($task->completed()){
     
     print_r("<strike>$task</strike>");
    }
    else{
    
     `print_r`($task);   
    
    }
    
    }
    
    
    
    ?>

【问题讨论】:

    标签: php class


    【解决方案1】:

    $t1 返回一个 void,而您必须创建一个新对象才能将 $t1 作为对象。 因此,理论上你可以运行

    $task->completed();
    

    但我认为这不是你的本意。所以我猜你需要创建 3 个新对象。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-07-09
      • 1970-01-01
      • 2014-08-25
      • 1970-01-01
      • 2017-07-05
      • 2012-11-15
      • 2011-07-25
      • 1970-01-01
      相关资源
      最近更新 更多