【发布时间】:2014-06-01 04:16:35
【问题描述】:
我在 PHP 中有以下代码。在 Phpunit 和 Laravel 中进行测试。为什么类方法与实例方法相同?我期待调用$instance->classMethod() 会返回一些错误。这是否也意味着实例方法名称不应该被类方法名称共享?还是 php 中的“静态方法”与我对“类方法”的理解不同?
<?php
class DemoClass{
static function classMethod(){
return "i'm a class method";
}
}
class ExampleTest extends TestCase {
/**
* A basic functional test example.
*
* @return void
*/
public function testBasicExample()
{
$instance = new DemoClass;
$result1 = $instance->classMethod();
$result2 = DemoClass::classmethod();
$this->assertNotEquals($result1, $result2);
}
}
结果:
Failed asserting that 'i'm a class method' is not equal to <string:i'm a class method>.
【问题讨论】: