【问题标题】:Setting $_POST data before calling PHP method在调用 PHP 方法之前设置 $_POST 数据
【发布时间】:2015-01-14 09:42:29
【问题描述】:

是否可以在调用另一个 PHP 方法之前设置 $_POST 数据?

我正在尝试从另一个 PHP 类调用方法。该方法不接受任何参数,它只需要 $_POST 数据。所以,我的问题是:有可能做这样的事情吗?

$_POST['name'] = 'John';

$user = new User();
$user->create();

“User”类的“create”方法获取 $_POST['name'] 数据来创建记录。有用吗?

【问题讨论】:

  • 你为什么不试试呢?我认为这是工作但真的不这样做,$_POST 用于发布数据,为什么不使用其他变量?
  • 我会说这是一个设计缺陷。 User 关心名字的来源,你为什么不做User::create($username, $password)
  • Leandro 是正确的,答案在提供的链接中。
  • 我在发布此链接之前看到了 Leandro 发送的链接,但我认为这不是完全相同的问题,因为在这种情况下,$_POST 是在“next.php”文件中设置的。就我而言,我将它设置在方法之外,在类之外,在另一个文件中。在调用该方法之前,我将其设置在另一个 php 文件中。我尝试这样做的原因是因为这是一个由表单调用的方法,但现在我们还必须创建一个将自动调用它的批处理文件,而不需要任何表单数据。我无法测试它,因为它现在不应该运行,只能在周末运行。

标签: php class post methods


【解决方案1】:

是的,你可以这样做。

由于$_POSTsuperglobal 关联数组,您可以像普通php 数组一样更改值。看看这段代码。它将打印“Hai”。

<?php
 class first{
   public function index(){
     $_POST['text'] = 'Hai';
     $scnd = new second();
     $scnd->disp();
   }
 }
 class second{
   public function disp(){
     $cc = $_POST['text'];
     echo $cc;
   }
 }
 $in = new first();
 $in->index();
 ?>

【讨论】:

  • 谢谢!我现在无法测试我的代码,所以你的例子很有帮助!
猜你喜欢
  • 2010-10-07
  • 2011-08-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-01-20
  • 2021-11-18
相关资源
最近更新 更多