我正在学习Traversy Media的PHP/MVC/OOP课程,我正在为一个简单的社交应用程序创建路由器的章节(任何请求的初始路由domain.com/index.php
)。
这个人谈论将数组作为参数传递,我不明白这是如何工作的:
class Posts {
public function edit($id) {
$post = $this->postModel->fetchPost($id);
$this->view('edit', ['post' => $post]);
}
}
这门课中有一些更简单的东西,但我只是不确定['post' => $post]
部分。
我不明白这种语法是如何工作的,就像一个接一个的符号。这是基于已经融入某种框架的东西吗(他这里没有这样的东西,这是他的,这是他从头开始构建它的第一章)。我的意思是,我会想象数组就像一个$array
,在一个变量中,这是一个方括号中的参数,那么这里的数组叫什么名字呢?
这是$post
的吗,并且是第二个实际的=>$post
子数组。我只是根本不明白。
我以前开始学习Laravel(暂时跳过所有这些),我也一直被困在这些事情上。
我的意思是,这是否只与框架相关(不是真正的常规过程 PHP),就像已经在更深层次上编码并且我们与之相关的东西?
提前感谢您提供我能得到的任何信息。
你感到困惑的部分只是一个函数调用。
$this-view('edit',['post' => $post]);
这本来可以这样写的
$dataYouWantToPassToTheView = ['post' => $post];
$this->view('edit', $dataYouWantToPassToTheView);
您正在调用函数view
,并向其传递两个参数。一个Edit
字符串和一个数组,其中包含一个键post
,其值为名为post
的变量。view 函数只是获取数组中的所有值,并通过它们在视图中的键使它们可用。
这意味着您可以在视图中执行以下操作
<span>This is post id: {{ $post->id }}</span>
将数组作为参数传递是常规的PHP,与特定框架无关。Array
不需要"名称",就像'edit'
String
不需要名称一样。