Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
25 changed files
with
527 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,18 @@ | ||
--TEST-- | ||
Using 'static' and 'global' in global scope | ||
--FILE-- | ||
<?php | ||
|
||
static $var, $var, $var = -1; | ||
var_dump($var); | ||
|
||
global $var, $var, $var; | ||
var_dump($var); | ||
|
||
var_dump($GLOBALS['var']); | ||
|
||
?> | ||
--EXPECT-- | ||
int(-1) | ||
int(-1) | ||
int(-1) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,25 @@ | ||
--TEST-- | ||
Overriding internal class with class alias | ||
--FILE-- | ||
<?php | ||
|
||
namespace foo; | ||
|
||
class bar { } | ||
|
||
class_alias('foo::bar', 'baz'); | ||
|
||
use ::baz as stdClass; | ||
|
||
var_dump(new foo::bar); | ||
var_dump(new stdClass); | ||
var_dump(new ::baz); | ||
|
||
?> | ||
--EXPECTF-- | ||
object(foo::bar)#%d (0) { | ||
} | ||
object(foo::bar)#%d (0) { | ||
} | ||
object(foo::bar)#%d (0) { | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,27 @@ | ||
--TEST-- | ||
Testing class_exists() inside namespace | ||
--FILE-- | ||
<?php | ||
|
||
namespace foo; | ||
|
||
class foo { | ||
|
||
} | ||
|
||
class_alias(__NAMESPACE__ .'::foo', 'bar'); | ||
|
||
|
||
var_dump(class_exists('::bar')); | ||
var_dump(class_exists('bar')); | ||
var_dump(class_exists('foo::bar')); | ||
var_dump(class_exists('foo::foo')); | ||
var_dump(class_exists('foo')); | ||
|
||
?> | ||
--EXPECT-- | ||
bool(true) | ||
bool(true) | ||
bool(false) | ||
bool(true) | ||
bool(false) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,26 @@ | ||
--TEST-- | ||
Testing several valid and invalid parameters | ||
--FILE-- | ||
<?php | ||
|
||
class foo { | ||
|
||
} | ||
|
||
var_dump(class_exists('')); | ||
var_dump(class_exists(NULL)); | ||
var_dump(class_exists('FOO')); | ||
var_dump(class_exists('bar')); | ||
var_dump(class_exists(1)); | ||
var_dump(class_exists(new stdClass)); | ||
|
||
?> | ||
--EXPECTF-- | ||
bool(false) | ||
bool(false) | ||
bool(true) | ||
bool(false) | ||
bool(false) | ||
|
||
Warning: class_exists() expects parameter 1 to be string (Unicode or binary), object given in %s on line %d | ||
NULL |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,20 @@ | ||
--TEST-- | ||
Checking if exists interface, abstract and final class | ||
--FILE-- | ||
<?php | ||
|
||
interface a { } | ||
|
||
abstract class b { } | ||
|
||
final class c { } | ||
|
||
var_dump(class_exists('a')); | ||
var_dump(class_exists('b')); | ||
var_dump(class_exists('c')); | ||
|
||
?> | ||
--EXPECT-- | ||
bool(false) | ||
bool(true) | ||
bool(true) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,25 @@ | ||
--TEST-- | ||
Defining and using constants | ||
--FILE-- | ||
<?php | ||
|
||
define('foo', 2); | ||
define('1', 2); | ||
define(1, 2); | ||
define('', 1); | ||
define('1foo', 3); | ||
|
||
var_dump(constant('foo')); | ||
var_dump(constant('1')); | ||
var_dump(constant(1)); | ||
var_dump(constant('')); | ||
var_dump(constant('1foo')); | ||
|
||
?> | ||
--EXPECTF-- | ||
Notice: Constant 1 already defined in %s on line %d | ||
int(2) | ||
int(2) | ||
int(2) | ||
int(1) | ||
int(3) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,24 @@ | ||
--TEST-- | ||
Defining constants with non-scalar values | ||
--FILE-- | ||
<?php | ||
|
||
define('foo', new stdClass); | ||
var_dump(foo); | ||
|
||
define('foo', fopen(__FILE__, 'r')); | ||
var_dump(foo); | ||
|
||
?> | ||
--EXPECTF-- | ||
Warning: Constants may only evaluate to scalar values in %s on line %d | ||
|
||
Notice: Use of undefined constant foo - assumed 'foo' in %s on line %d | ||
string(%d) "foo" | ||
resource(%d) of type (stream) | ||
--UEXPECTF-- | ||
Warning: Constants may only evaluate to scalar values in %s on line %d | ||
|
||
Notice: Use of undefined constant foo - assumed 'foo' in %s on line %d | ||
unicode(%d) "foo" | ||
resource(%d) of type (stream) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,21 @@ | ||
--TEST-- | ||
Using namespace constants and constants of global scope | ||
--FILE-- | ||
<?php | ||
|
||
namespace foo; | ||
|
||
const foo = 1; | ||
|
||
define('foo', 2); | ||
|
||
var_dump(foo, namespace::foo, foo::foo, ::foo, constant('foo'), constant('foo::foo')); | ||
|
||
?> | ||
--EXPECT-- | ||
int(1) | ||
int(1) | ||
int(1) | ||
int(2) | ||
int(2) | ||
int(1) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,13 @@ | ||
--TEST-- | ||
Trying to redeclare constant inside namespace | ||
--FILE-- | ||
<?php | ||
|
||
namespace foo; | ||
|
||
const foo = 1; | ||
const foo = 2; | ||
|
||
?> | ||
--EXPECTF-- | ||
Notice: Constant foo::foo already defined in %s on line %d |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
--TEST-- | ||
Testing each() with an undefined variable | ||
--FILE-- | ||
<?php | ||
|
||
each($foo); | ||
|
||
?> | ||
--EXPECTF-- | ||
Warning: Variable passed to each() is not an array or object in %s on line %d |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,45 @@ | ||
--TEST-- | ||
Testing each() with array and object | ||
--FILE-- | ||
<?php | ||
|
||
$foo = each(new stdClass); | ||
var_dump($foo); | ||
|
||
var_dump(each(new stdClass)); | ||
|
||
$a = array(new stdClass); | ||
var_dump(each($a)); | ||
|
||
|
||
?> | ||
--EXPECTF-- | ||
bool(false) | ||
bool(false) | ||
array(4) { | ||
[1]=> | ||
object(stdClass)#1 (0) { | ||
} | ||
["value"]=> | ||
object(stdClass)#1 (0) { | ||
} | ||
[0]=> | ||
int(0) | ||
["key"]=> | ||
int(0) | ||
} | ||
--UEXPECTF-- | ||
bool(false) | ||
bool(false) | ||
array(4) { | ||
[1]=> | ||
object(stdClass)#1 (0) { | ||
} | ||
[u"value"]=> | ||
object(stdClass)#1 (0) { | ||
} | ||
[0]=> | ||
int(0) | ||
[u"key"]=> | ||
int(0) | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,37 @@ | ||
--TEST-- | ||
Testing each() with recursion | ||
--FILE-- | ||
<?php | ||
|
||
$a = array(array()); | ||
$a[] =& $a; | ||
|
||
var_dump(each($a[1])); | ||
|
||
?> | ||
--EXPECTF-- | ||
array(4) { | ||
[1]=> | ||
array(0) { | ||
} | ||
["value"]=> | ||
array(0) { | ||
} | ||
[0]=> | ||
int(0) | ||
["key"]=> | ||
int(0) | ||
} | ||
--UEXPECTF-- | ||
array(4) { | ||
[1]=> | ||
array(0) { | ||
} | ||
[u"value"]=> | ||
array(0) { | ||
} | ||
[0]=> | ||
int(0) | ||
[u"key"]=> | ||
int(0) | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,12 @@ | ||
--TEST-- | ||
Trying to throw exception of an interface | ||
--FILE-- | ||
<?php | ||
|
||
interface a { } | ||
|
||
throw new a(); | ||
|
||
?> | ||
--EXPECTF-- | ||
Fatal error: Cannot instantiate interface a in %s on line %d |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
--TEST-- | ||
Trying to throw a non-object | ||
--FILE-- | ||
<?php | ||
|
||
throw 1; | ||
|
||
?> | ||
--EXPECTF-- | ||
Fatal error: Can only throw objects in %s on line %d |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
--TEST-- | ||
Calling get_called_class() outside a class | ||
--FILE-- | ||
<?php | ||
|
||
var_dump(get_called_class()); | ||
|
||
?> | ||
--EXPECTF-- | ||
Warning: get_called_class() called from outside a class in %s on line %d | ||
bool(false) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,31 @@ | ||
--TEST-- | ||
Testing get_parent_class() | ||
--FILE-- | ||
<?php | ||
|
||
interface ITest { | ||
function foo(); | ||
} | ||
|
||
abstract class bar implements ITest { | ||
public function foo() { | ||
var_dump(get_parent_class()); | ||
} | ||
} | ||
|
||
class foo extends bar { | ||
public function __construct() { | ||
var_dump(get_parent_class()); | ||
} | ||
} | ||
|
||
$a = new foo; | ||
$a->foo(); | ||
|
||
?> | ||
--EXPECT-- | ||
string(3) "bar" | ||
bool(false) | ||
--UEXPECT-- | ||
unicode(3) "bar" | ||
bool(false) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,17 @@ | ||
--TEST-- | ||
Testing heredoc with tabs before identifier | ||
--FILE-- | ||
<?php | ||
|
||
$heredoc = <<< A | ||
foo | ||
A; | ||
A; | ||
|
||
var_dump(strlen($heredoc) == 9); | ||
|
||
?> | ||
--EXPECT-- | ||
bool(true) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
--TEST-- | ||
Trying to inherit a class in an interface | ||
--FILE-- | ||
<?php | ||
|
||
interface a extends Exception { } | ||
|
||
?> | ||
--EXPECTF-- | ||
Fatal error: a cannot implement Exception - it is not an interface in %s on line %d |
Oops, something went wrong.