Bug #66648 [Nab]: problem with the definition of a method
| From: | Viktorlubchuk at gmail dot com | Date: | Wed, 05 Feb 2014 20:55:12 +0000 |
| Subject: | Bug #66648 [Nab]: problem with the definition of a method | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-184174@lists.php.net to get a copy of this message | ||
Edit report at https://bugs.php.net/bug.php?id=66648&edit=1
ID: 66648
User updated by: Viktorlubchuk at gmail dot com
Reported by: Viktorlubchuk at gmail dot com
Summary: problem with the definition of a method
Status: Not a bug
Type: Bug
Package: Scripting Engine problem
Operating System: linux mint 16
PHP Version: 5.5.8
Block user comment: N
Private report: N
New Comment:
problem solved. thank you.
Previous Comments:
------------------------------------------------------------------------
[2014-02-05 19:47:32] requinix@php.net
You can call a non-static method statically - PHP allows that (for the time being) - but it will
issue an E_STRICT. If you don't see the message then you don't have your error_reporting
and/or display_errors settings set to show it.
Strict Standards: Non-static method PHP_SINGLETONE\Example::in() should not be called statically in
... on line 58
Strict Standards: Non-static method PHP_SINGLETONE\Example::doSome() should not be called statically
in ... on line 60
PHP_SINGLETONE\Example1 var1<br>
Strict Standards: Non-static method PHP_SINGLETONE\Example::in() should not be called statically in
... on line 62
Strict Standards: Non-static method PHP_SINGLETONE\Example::doSome() should not be called statically
in ... on line 64
PHP_SINGLETONE\Example2 var2<br>string(1) "6"
6
------------------------------------------------------------------------
[2014-02-05 17:22:07] Viktorlubchuk at gmail dot com
Description:
------------
the is bug is that I appeal to the public methods as static and it works
i try it on php versions 5.4 , 5.3 and its outputting error as it should be
<?php
namespace PHP_SINGLETONE;
abstract class Example
{
public static $counter = null;
protected $num;
public function __construct()
{
}
public function in()
{
$class = get_called_class();
if ($class::$counter === null) {
$class::$counter = new $class();
}
return $class::$counter;
}
public function doSome($string)
{
echo get_called_class(). " ".$string."<br>";
}
public function showNum($number)
{
$this->num = $number;
return $this->num;
}
}
class Example1 extends Example
{
public static $counter = null;
}
class Example2 extends Example
{
public static $counter = null;
}
$var = Example1::in();
$var::doSome('var1');
$var1 = Example2::in();
$var1::doSome('var2');
var_dump($a = $var1->showNum("6"));
echo $a;
Expected result:
----------------
i`m expecting to error that say - I can not appeal to the public methods as static
------------------------------------------------------------------------
--
Edit this bug report at https://bugs.php.net/bug.php?id=66648&edit=1