ZEND是否自动包含PhP单位?

时间:2013-03-19 13:19:42

标签: php phpunit

我曾经问过这个代码有什么问题:

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自动安装的吗?

3 个答案:

答案 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,它将会中断。因此,使用插件可能存在风险。