当变量被赋值为空值时,构造函数如何工作?

时间:2017-04-27 作者:Himanshu

我无法理解这里的\\uu构造的功能。我知道在任何类中,只要类被实例化,\\uu构造就会运行。然而,我好奇的是,当$marks在\\uu construct函数中定义为null时,为什么它要在\\uu construct的if语句中检查其值?它不会总是返回false吗?

class Marks_Manage
{
    public $mark_id;
    public $exam_id;
    public $class_id;
    public $subject_id;
    public $marks;
    public $attendance;
    public $student_id;
    public $marks_comment;
    public $created_date;
    //current_time( \'mysql\' );

    public function __construct( $marks = null ) 
    {
        if($marks)
        {
            global $wpdb;
            $table_name = $wpdb->prefix . "marks";
            $mark_data = $wpdb->get_row( "SELECT * FROM $table_name WHERE mark_id=".$marks);
            $this->mark_id = $mark_data->mark_id;
            $this->exam_id = $mark_data->exam_id;
            $this->class_id = $mark_data->class_id;
            $this->subject_id = $mark_data->subject_id;
            $this->marks = $mark_data->marks;
            $this->attendance = $mark_data->attendance;
            $this->student_id = $mark_data->student_id;
            $this->marks_comment = $mark_data->marks_comment;

        }
    }

1 个回复
SO网友:Nathan Johnson

可以将变量传递给类构造。

$blarg = new Marks_Manage( \'string\' );
现在条件if( $marks ) 返回true。

如果未向类构造传递任何内容:

$blarg = new Marks_Manage();
那么$marks 将为null,并且if( $marks ) 评估为错误;

相关推荐

Generating a perfect loop

所以我现在已经在这里坐了大约三个小时了,我不得不让这件事过去几个小时来好好睡一觉,同时我希望能得到你的帮助。我已经能够使用$wpdb->get\\u results从数据库中获取内容,并且能够将它们放入一个数组中,但是我想使用这些信息在循环中运行一个新的查询,以获取列表中的多个项目。我使用了本指南的一个变体https://stackoverflow.com/questions/45848249/woocommerce-get-all-orders-for-a-product 获取订单ID。现在,我已