什么是数据注入变量?它的使用场景是什么?
『 PHP里引入Java中数据注入变量的概念具体如何实现?』
http://segmentfault.com/q/10100000001...
对这一概念及其使用场景不了解,能否介绍一下?
回复内容:
『 PHP里引入Java中数据注入变量的概念具体如何实现?』
http://segmentfault.com/q/10100000001...
对这一概念及其使用场景不了解,能否介绍一下?
与其叫注入变量不如加引用变量更加贴切,正如我在那个问题中所回答的。而这种做法的应用场景则是一切需要用到单例模式引用场景的地方,比如以前你在Controller里调用Model,可能要这么写
class Controller_Test extends Controller { public function execute() { $this->loadModel('user')->fetch(...); } }
这被称为调用,无论你怎么做单例模式都是从外部调用的这个对象。但是如果你按我在上个答案中提到的方法实现__get
,那么这个从外部调用的对象就注入成了内部属性,它的好处是显而易见的,从写法上说减少了很多麻烦而且更加清晰,从性能上说减少了多次调用时检测以及函数调用消耗
class Controller_Test extends Controller { public function execute() { $this->userModel->fetch(...); } }
举个例子吧。
User:
id | name | age
这样,如果有变量注入,初始化一个对象。
$user = new UserObj(); // 此时 $user 这个实例中并没有载入 name 数据 echo $user->name; // 调用name属性的时候,才进行注入,载入数据
事实上,这个UserObj并没有定义name属性,而是注入进去的
在User里加入一个字段 birthday
id | name | age | birthday
那调用的时候,已然是直接调用,不需要修改UserObj的定义
$user = new UserObj(); echo $user->birthday;

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

AI Hentai Generator
Generate AI Hentai for free.

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics



In this chapter, we will understand the Environment Variables, General Configuration, Database Configuration and Email Configuration in CakePHP.

PHP 8.4 brings several new features, security improvements, and performance improvements with healthy amounts of feature deprecations and removals. This guide explains how to install PHP 8.4 or upgrade to PHP 8.4 on Ubuntu, Debian, or their derivati

To work with date and time in cakephp4, we are going to make use of the available FrozenTime class.

Working with database in CakePHP is very easy. We will understand the CRUD (Create, Read, Update, Delete) operations in this chapter.

To work on file upload we are going to use the form helper. Here, is an example for file upload.

In this chapter, we are going to learn the following topics related to routing ?

CakePHP is an open-source framework for PHP. It is intended to make developing, deploying and maintaining applications much easier. CakePHP is based on a MVC-like architecture that is both powerful and easy to grasp. Models, Views, and Controllers gu

Validator can be created by adding the following two lines in the controller.
