首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

为什么Laravel 5.6中的构造函数返回null

在Laravel 5.6中,构造函数返回null的原因可能是因为构造函数没有显式地返回任何值。在PHP中,构造函数不需要返回值,因为它的主要目的是初始化对象的属性和执行其他必要的操作。

构造函数通常用于在创建对象时设置默认值或执行一些初始化逻辑。当构造函数没有返回值时,默认返回null。这是因为构造函数的返回类型声明默认为void,即没有返回值。

在Laravel框架中,构造函数通常用于依赖注入,即在创建对象时自动注入所需的依赖项。当构造函数返回null时,并不会影响依赖注入的过程,因为依赖项已经在构造函数中被正确地注入。

需要注意的是,构造函数返回null并不意味着对象本身是null。只是构造函数没有显式地返回任何值,因此默认返回null。

总结起来,Laravel 5.6中的构造函数返回null是因为构造函数没有显式地返回任何值,这是PHP语言的默认行为。这并不会影响Laravel框架的正常运行和依赖注入过程。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

构造函数没有返回值是怎么赋值

个人原创100W+访问量博客:点击前往,查看更多 转自:艾小仙 众所周知,在java里是不能给构造函数返回,如果在低版本编译器定义一个构造器写上返回值可能会报错,高版本里面他就是一个普通方法。...可是如果构造函数没有返回值,那么比如Test t = new Test()我们new一个对象时候是怎么赋值呢?...构造函数返回值吗 写一段代码测试一下: public class Test { public Test() { } public static void main...4: invokespecial #7 // Method "init":()V,调用构造函数,V代表void无返回值,那么init代表什么含义?...init代表着虚拟机调用构造函数,现在情况很明显,构造函数返回类型是void,那么它究竟是怎么赋值呢?

1.7K20
  • 解决在laravel中leftjoin带条件查询没有返回右表为NULL问题

    问题描述:在使用laravel左联接查询时候遇到一个问题,查询中带了右表一个筛选条件,导致结果没有返回右表为空记录。...,直接加where条件是不行,会导致返回结果不返回class为空记录,正确是写法应该是 select u.user_id,c.class from users u left join class c...u.user_id=c.user_id and c.status=2; 没错,正确写法是left join .. on .. and 而非 left join .. on .. where 2.那么,在laravel...里这个mysql表达式写法是怎样,我查阅了多个手册。。。...以上这篇解决在laravel中leftjoin带条件查询没有返回右表为NULL问题就是小编分享给大家全部内容了,希望能给大家一个参考。

    6.9K31

    laravel 操作数据库常用函数返回值方法

    1、insert/insertGetId insert函数返回值为boolean类型:成功为true,失败为false insertGetId函数返回值为整型:成功为插入时ID值,失败为… DB:...age' = 99] ); DB::table('users')- insertGetId( ['name' = '上官帝文2', 'age' = 98] ); 2、update/delete 该函数返回修改成功记录条数...4、first() DB::table('testtable')- first(); 返回一个对象 ?...:table('testtable')- paginate($total); dd($result); 第一个语句返回结果: ?...第二语句返回结果: ? total 这个值很重要,用于前台显示,每次当前分页查询总条数。 以上这篇laravel 操作数据库常用函数返回值方法就是小编分享给大家全部内容了,希望能给大家一个参考。

    1.5K31

    踩坑:Spring静态变量构造函数注入失败(注入为null)问题解决方案

    字段值) HELLO_WORLD = this.helloWorld; } } 复制代码 2、案例2:在构造函数中使用Spring容器中Bean对象,得到结果为空 业务场景假设...: eg:我需要在一个类(HelloWorld)被加载时候,调用service层接口(UserService)去执行一个方法(sayHello),有些同学可能会在构造函数中通过调用UserService...Autowired private UserService userService; public HelloWorld(){ // 这里会报空指针异常:因为 userService 属性注入是在无参数构造函数之后...,如果这里直接使用 userService ,此时该属性值为null,一个为null成员变量调用sayHello()方法,NullPointException 异常是情理之中呀!...; } } 复制代码 解决方案:@PostConstruct注解 由于@PostConstruct注解修饰方法其生命周期位于构造方法调用之后,在Spring属性值注入之前,所以,该注解可以很好解决这个业务需求

    1.3K00

    【C++】C++ 类中 this 指针用法 ③ ( 全局函数 与 成员函数 相互转化 | 有参构造函数设置默认参数值 | 返回匿名对象与返回引用 )

    return s; } 详细代码 , 参考最后完整代码示例 ; 二、有参构造函数设置默认参数值 ---- 为 Student 类定义了有参构造函数 , 则其默认无参构造函数 , 就不会生成...执行 Student 构造函数" << endl; } 此时 , 如果要创建 Student 对象 , 只能调用上述 有参构造函数 , 如果使用 Student s2 方式调用 默认构造函数 创建...Student 对象 , 就会报错 ; 如下带参数构造函数 , 并且为其 有参构造函数 参数 设置一个默认值 , 此时就可以使用 类名 对象名 方式定义对象变量 ; class Student...age = 18 , height = 180 执行 Student 构造函数 age = 1 , height = 1 执行 Student 构造函数 执行 Student 析构函数 age...= 19 , height = 181 执行 Student 构造函数 执行 Student 构造函数 执行 Student 析构函数 执行 Student 析构函数 age = 19 , height

    22320

    构造函数为什么一般不定义为虚函数?而析构函数一般写成虚函数原因 ?

    浏览量 3 1、构造函数不能声明为虚函数 1)因为创建一个对象时需要确定对象类型,而虚函数是在运行时确定其类型。...而在构造一个对象时,由于对象还未创建成功,编译器无法知道对象实际类型,是类本身还是类派生类等等 2)虚函数调用需要虚函数表指针,而该指针存放在对象内存空间中;若构造函数声明为虚函数,那么由于对象还未创建...,还没有内存空间,更没有虚函数表地址用来调用虚函数构造函数了 2、析构函数最好声明为虚函数,首先析构函数可以为虚函数,当析构一个指向派生类基类指针时,最好将基类析构函数声明为虚函数,否则可以存在内存泄露问题...如果析构函数不被声明成虚函数,则编译器实施静态绑定,在删除指向派生类基类指针时,只会调用基类析构函数而不调用派生类析构函数,这样就会造成派生类对象析构不完全。子类析构时,要调用父类析构函数吗?...析构函数调用次序时先派生类后基类。和构造函数执行顺序相反。并且析构函数要是virtual,否则如果用父类指针指向子类对象时候,析构函数静态绑定,不会调用子类析构。

    64210

    【C++】匿名对象 ③ ( 函数返回值为对象值时 匿名对象 拷贝构造函数 与 析构函数 调用情况分析 )

    将一个对象赋值给另外一个对象 ) 【C++】拷贝构造函数调用时机 ② ( 对象值作为函数参数 | 对象值作为函数返回值 ) 博客中 , 分析了 拷贝构造函数 调用时机 ; " 拷贝构造函数 " 又称为...Student fun() { Student s1(18, 170); return s1; } 二、当函数返回值为对象时情况分析 ---- 1、函数返回对象值时返回值为匿名对象 如果一个 函数返回值..., 返回 匿名对象 , 此时 调用 拷贝构造函数 , 将 普通对象 值 拷贝给 匿名对象 ; 再后 , 函数执行完毕 , 普通对象 需要被 销毁 , 此时调用析构函数 , 销毁 普通对象 ; 2、处理..., 匿名对象销毁 ; 3、代码示例 - 函数返回匿名对象 初始化 变量 在下面的代码中 , fun 函数返回值是 Student 类型匿名对象 ; // 函数返回值是 Student 类型对象...m_age = 12 这是在 fun 函数中 , 调用 有参构造函数 , 创建 普通对象 ; 调用拷贝构造函数 这是在 fun 函数中 , 函数返回对象值时 , 创建 要返回 普通对象副本 , 也就是一个

    30220

    箭头函数与普通函数(function)区别是什么?构造函数(function)可以使用 new 生成实例,那么箭头函数可以吗?为什么

    基本不同 1.写法不同,箭头函数使用箭头定义,普通函数中没有 .箭头函数都是匿名函数,普通函数可以有匿名函数,也可以有具体名函数,但是箭头函数都是匿名函数。...在普通函数中,this总是指向调用它对象,如果用作构造函数,this指向创建对象实例。箭头函数中没有this,声明时捕获其所在上下文this供自己使用。...所以箭头函数结合call(),apply()方法调用一个函数时,只传入一个参数对this没有影响。...obj x fn1.apply(obj); // obj x fn2.call(obj); // window x fn2.apply(obj); // window x 4.箭头函数不可以做构造函数...,不能使用new 关键字,因为new关键字是调用函数对象constructor属性,箭头函数中没有该属性,所以不能new function fn1(){ console.log

    1.9K10

    关于Java构造函数(Constructor)常见问题总结1 为什么调用子类构造方法时候,默认会调用父类构造方法2 常见错误:Implicit super constructor is und

    1 为什么调用子类构造方法时候,默认会调用父类构造方法 看下面这个简单例子: package cc; public class Sub extends Super { public Sub...这就是为什么我们上面的那个例子程序会先调用super构造方法。 但要切记,** 虽然调用了父类构造方法,但只创建了一个对象也就是子对象。...解决这个问题很简单,我们可以给父类插入一个无参构造函数,或者在子类构造函数中显示调用父类有参构造函数。 在子类构造函数中显示调用父类构造函数 下面的代码是正确。 ?...为什么Java在一个类已经实现了一个带参构造函数时候,不实现默认无参构造函数? 这是个很有趣问题。...我们知道如果在一个类中没有声明一个构造函数,那么编译器会隐式帮我们实现一个无参构造函数,但如果我们一旦一个构造函数,不管带不带参数,那么编译器都不会提供默认构造函数,所以这么做原因是为什么呢?

    2.9K41

    Laravel系列4.3】模型Eloquent ORM使用(一)

    赶紧查看错误信息,竟然是这个 laravel.m_tests 表不存在。小伙伴们不要惊讶,在这里出错是正常为什么呢?...最后在查询中,我们也看到了类似于 查询构造链式调用形式,通过模型静态 where() 方法返回实例对象,一步步地构造整个查询。...然后来到最后 tap() 中,tap() 是一个 Laravel 框架中定义全局函数,和 env() 函数在一起,它作用是将第一个参数当作第二个参数参数传递给第二参数,并执行第二个参数后,将第一个参数再返回回来...在这段代码中,就是先调用 BelongsTo 对象 getResults() 方法,获得关联真正 DbSex 这个 Model 对象,然后通过回调函数 setRelation() 绑定到 laravel...最后 tap() 函数还是会把之前传递进行去第一个参数值,也就是最终那个 DbSex 对象再一路返回到 __get() 中,这样,就完成了整个链条调用。

    8.9K20

    Laravel系列4.2】查询构造

    update() 方法是用于更新,它返回是受影响条数,这个方法需要有一个 where() 函数用于提供更新数据条件,如果不带 where() 的话也是可以,不过后果自己承担哈。...在 查询构造器 中,还有其它很多链式函数可以实现非常复杂数据库操作,大家可以自己去研究一下。...在这里还需要注意是,链式调用每个函数方法返回值哦,只有返回是 Builder 对象才可以不停地链式哈,get()、toArray()、find() 之后可不能再继续链式了,因为它们返回是结果对象...赶紧去 【PHP设计模式之建造者模式】https://mp.weixin.qq.com/s/AhCLhH3rQAOULdZ2NtSGDw 中复习一下吧,构造器 建造者 这两个名词是可以互换哦,这下明白为什么今天我们这篇文章和这些功能为什么叫做...// laravel/framework/src/Illuminate/Database/Connection.php public function table($table, $as = null)

    16.8K10

    Laravel系列6.3】框架启动与服务容器源码

    接下来,判断实现是否是匿名函数形式,如果不是的话,转换成一个匿名函数形式实现方法。然后通过 compact() 函数将参数转换成数据并保存在 bindings 数组中。...resolve() 这个方法,在这个方法内部,我们可以看到最后直接返回就是一个 object 变量,很明显,它将会是一个对象。...,如果是的话,直接调用这个回调函数并且返回了。...resolveDependencies() 用来解决类实例化时构造函数依赖问题,需要参数也是通过上面反射时 getParameters() 方法获取。...默认服务实例以及服务提供者都在 Application 构造函数中进行了预加载,比如说路由、门面等等。

    1.9K20

    详解Laravel服务容器绑定与解析

    依赖注入这个花俏名词实质上是指:类依赖项通过构造函数,或者某些情况下通过「setter」方法「注入」到类中。。。。。。(真的看不懂啥意思)   服务容器是用于管理类(服务)实例化机制。...(第三个参数为true),绑定到容器对象只会被解析一次,之后调用都返回相同实例 public function singleton($abstract, $concrete = null) { $...实际上,当我们使用singleton,bind方法以及数组形式,(这三个方法是后面要介绍绑定方法),进行服务绑定时候,如果绑定服务形式,不是一个匿名函数,也会在laravel内部用一个匿名函数包装起来...if (is_null($constructor)) { // 将 build 过程内容 pop,然后直接构造对象输出。...array_pop($this- buildStack); return new $concrete; } // 获取构造函数参数 $dependencies = $constructor

    1.9K31

    laravel源码解读学习(一)Application实例化

    前言心血来潮发现laravel有php artisan serve监听端口启动方式,突然想仔细看看laravel源码,本系列随时可能鸽,laravel版本8.83.27。...为什么是这版本呢,因为在写这篇文章时直接执行laravelcomposer方式安装默认就是这版本Application构造方法切入口就基于根目录artisan文件常见框架初始化入口,接下来去到/...,这个类允许子类重写register()方法,而这些Provider构造函数都是基于Illuminate\Support\ServiceProvider构造函数先来看Illuminate/Foundation...,返回值是null或具体Provider实例,当Provider已注册过且$force为false时不重复注册$this-> resolveProvider($provider) 逻辑是简单new...,在前面的内容中可以了解到Provider在构造函数中传入了Illuminate/Foundation/Application,意味着开发者可以在Provider内通过$this->app去获取bindings

    17810
    领券