-10

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

static $result = null;

if  (isNull($result))
{
    return $result;
}

经过大量的反对(问题消失了),问题是没有这样的东西叫做 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 的吗?我从来不记得以前有那个文件。

我从来没有添加过这个框架。不是我知道的。然而它就在那里。它必须是一些强大的框架。

我怎么知道自动完成如何认为它是我的代码的一部分?我试过在资源管理器中显示,在导航器中显示,什么都没有。Windows 资源管理器中没有显示选项。

PhPUnit 一定是一个著名的框架,它在我不知道的情况下进入了我的代码。它是由 ZEND 自动安装的吗?

4

3 回答 3

5

isNUll()是来自 PHPUnit 的一个函数,它是一个“项目”(PHP 框架)。

你的问题看起来像:

<?php
 if(myFooRandomFunction($a,$b,2,3.14))
 {
  //do something
 }
}

这是myFooRandomFunction()什么,这会做什么?

它没有任何意义(因为我们谈论的是php的功能)!

然而

PHPUnit_Framework_Assert::isNull()

是该框架的一个功能,用于根据此断言测试您的值。显然,名称isNull不是随机的,而是按原样编写的,以便从 php 的标准中识别它

于 2013-03-19T13:23:32.697 回答
2

PHP 单元测试是一个 PEAR 库,用于测试PHP 代码并断言分隔代码中是否满足某些条件。

isNull()不是内置的 PHP 函数。

于 2013-03-19T13:24:37.090 回答
1

PHPUnit 是一个单元测试框架。当您(或某人)将其添加到您的代码中时,它的功能显然在您的代码中随处可用。

这是编程中的常见情况,而不仅仅是 PHP。它发生在每一种语言中——您可以添加其他人的代码或框架或插件或插件,而没有意识到全部含义。在这里,您的框架添加了功能(isNull),如果您决定删除 PHPUnit,这些功能将中断。因此,使用插件可能是有风险的。

于 2013-03-19T13:23:16.277 回答