我曾经问过这个代码有什么问题:
static $result = null;
if (isNull($result))
{
return $result;
}
经过大量的downvotes(问题消失),问题在于没有这样的东西叫做isNull函数。我们所拥有的是is_null
大。我想知道我最初是如何使用isNull的。
原来这是自动完成工作。
现在我发现了为什么我输入了isNull。该功能实际存在。我按ctrl单击,然后转到
/**
* Returns a PHPUnit_Framework_Constraint_IsNull matcher object.
*
* @return PHPUnit_Framework_Constraint_IsNull
* @since Method available since Release 3.3.0
*/
function isNull()
{
return PHPUnit_Framework_Assert::isNull();
}
/**
* Returns a PHPUnit_Framework_Constraint_IsTrue matcher object.
*
* @return PHPUnit_Framework_Constraint_IsTrue
* @since Method available since Release 3.3.0
*/
function isTrue()
{
return PHPUnit_Framework_Assert::isTrue();
}
它来自一个名为functions.php的文件。我不知道那是什么问题
<?php
/**
* PHPUnit
*
* Copyright (c) 2002-2011, Sebastian Bergmann <sebastian@phpunit.de>.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* * Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
*
* * Neither the name of Sebastian Bergmann nor the names of his
* contributors may be used to endorse or promote products derived
* from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
* @package PHPUnit
* @subpackage Framework
* @author Sebastian Bergmann <sebastian@phpunit.de>
* @copyright 2002-2011 Sebastian Bergmann <sebastian@phpunit.de>
* @license http://www.opensource.org/licenses/bsd-license.php BSD License
* @link http://www.phpunit.de/
* @since File available since Release 3.5.0
那是什么?知道该文件是如何进入我的PHP的吗?我以前从来没有记得过那个文件。
我从未添加过这个框架。不是我知道的。然而它就在那里。它必须是一个强大的框架。
我怎么知道autocomplete如何认为它是我的代码的一部分?我试过在资源管理器中显示,在导航器中显示,没有。在Windows资源管理器中无法显示。
PhPUnit必须是一个着名的框架,它在我不知情的情况下进入我的代码。它是由ZEND自动安装的吗?
答案 0 :(得分:5)
isNUll()
是来自PHPUnit的函数,它是一个“项目”(PHP Framework)。
您的问题似乎是:
<?php
if(myFooRandomFunction($a,$b,2,3.14))
{
//do something
}
}
什么是myFooRandomFunction()
以及它会做什么?
没有任何意义(因为我们谈论php的功能)!
PHPUnit_Framework_Assert::isNull()
是该框架的一个功能,用于根据此断言测试您的值。显然,名称isNull
不是随机的,而是按原样编写的,因为它可以从php的标准中识别出来
答案 1 :(得分:2)
PHP单元测试是一个PEAR库,用于测试 PHP代码,并断言是否在分区代码中满足某些条件。
isNull()
不是内置的PHP函数。
答案 2 :(得分:1)
PHPUnit是一个单元测试框架。当您(或某人)将其添加到您的代码中时,其功能显然在您的代码中随处可用。
这是编程中的常见情况,而不仅仅是PHP。它发生在每种语言中 - 您可以添加其他人的代码或框架或插件或插件,而不是实现完整的含义。在这里,您的框架添加了一些功能(isNull),如果您决定删除PHPUnit,它将会中断。因此,使用插件可能存在风险。