我想知道如何检测是否设置了$ _POST.
现在我发现它像这样:
if(isset($_POST['value']))
Run Code Online (Sandbox Code Playgroud)
但我不是在看是否已经设定了价值.基本上,任何POST都可以.
if(isset($_POST))
Run Code Online (Sandbox Code Playgroud)
我不确定PHP如何处理这个问题.Perhabs isset($ _ POST)总是返回true,因为它是PHP全局?
基本上,我该怎么做?
我很困惑.
我已经让Reddit上的一些开发人员查看了我的代码.看起来像这样.
Template::load('register', array('error_message' => Language::translate('username_in_use'));
Run Code Online (Sandbox Code Playgroud)
所以它加载register.php,用翻译替换{error_message}.(抱歉,此用户名正在使用中.请选择其他用户名.)
他们说使用太多静态调用是一种不好的做法.然而他们建议使用Laravel框架,它完全摆脱$ this并使用静态调用.
有人可以解释一下,如果这是不好的做法,Laravel是一个优雅的框架吗?
我有一个小框架,我这样编码.我不确定它是否被称为依赖注入.我不知道它是否像设计模式.我也不知道并怀疑$this作为参数传递是否是一种不好的做法.
看看这个; (不是一个有效的例子,只是将这些代码写入浏览器进行解释.)
/* This is engine model */
require_once('Database.class.php');
require_once('Image.class.php');
require_once('Misc.class.php');
require_once('BBCode.class.php');
class FrameWork_Engine_Model
{
public $database, $config, $misc, $bbcode, $controller, $image;
function __construct($config)
{
$this->database = new Database($configParams);
$this->image = new Image($this);
$this->misc = new Misc($this);
$this->bbcode = new BBCode($this);
$this->controller = new Controller($this); //here I call Register controller depending on routing, in this case, register controller.
}
...
}
Run Code Online (Sandbox Code Playgroud)
/* This is register controller */
class Register extends Base_Controller
{
/*I can access anything over …Run Code Online (Sandbox Code Playgroud) function convert($currencyType)
{
$that = $this;
return $result = function () use ($that)
{
if (!in_array($currencyType, $this->ratio))
return false;
return ($this->ratio[$currencyType] * $this->money); //a float number
};
}
$currency = new Currency();
echo $currency->convert('EURO');
Run Code Online (Sandbox Code Playgroud)
怎么了?
我收到错误消息:
Catchable fatal error: Object of class Closure could not be converted to string
Run Code Online (Sandbox Code Playgroud) 首先,我不知道它是否被称为单元测试.如果它有不同的名称,请随时纠正我.
我正在开发像这样的Web应用程序.
假设我正在开发一个表单来将值保存到数据库中.我开发HTML和PHP.我有时间在浏览器中按F5并检查HTML/jQuery是否没有错误,PHP不会出现错误的分号等错误.
当它完成并且一切都准备好进行测试时,我开始测试我的代码的一小部分.喜欢;
如果它使用正确的值,并且失败并返回错误的值; 我相信表单按预期工作,没有错误,所以我转向其他事情.
而不是这样做,我想确保事情完美无缺,否则在没有垃圾邮件F5浏览器的情况下通知我这个问题.
像这样;
<?php
/* Unit Testing Start --
-ensure: isset($_POST['submit']) returns TRUE;
-ensure: isset($email) returns TRUE;
-ensure: isValidEmail($email) returns TRUE;
-ensure: connectDatabase() returns TRUE;
-ensure: getMysqlAffectedRows() returns 1;
-ensure: hasErrors() returns false;
*/
?>
Run Code Online (Sandbox Code Playgroud)
我的表单代码使用我上面发布的功能.
当它运行时,它应该向我显示如下消息:(最好还记录它)
Test complete. Tested (6) possibilities, (4) succeeded, (2) failed.
Failed 1: isValidEmail() returned FALSE, expected: TRUE.
Failed 2: getMysqlAffectedRows returned NULL/0, expected …Run Code Online (Sandbox Code Playgroud) 类是这样做的吗?
Class Main
{
$this->a = new A();
$this->b = new B();
$this->c = new C();
$this->b->doTranslate($this->a->saySomething());
}
Run Code Online (Sandbox Code Playgroud)
这就是特质的作用,不是吗?
Class Main {
use A;
use B;
use C;
$this->doTranslate($this->saySomething());
}
Run Code Online (Sandbox Code Playgroud)
我对特征根本没有太多了解,但通过查看新的 PHP 5.4 特征示例,它们似乎只在单一情况下有帮助。A class only be extended once to use $this together, but we can use multiple traits.
问题 1:这是使用特征相对于基本类的唯一优势吗?
问题2:如果trait A, B, and C都有一个名为 的函数example(),当我尝试$this->example();PHP 将如何确定将使用哪个特征?将会发生什么?
此外,不要写一堵文字墙;只需向我提供一个简短的代码示例和一个简短的简介,我可以查看并理解。我不熟悉特质,也不知道它们到底是什么。