1--TEST--
2Test strncasecmp() function: usage variations - heredoc strings
3--FILE--
4<?php
5/* Test strncasecmp() function with here-doc strings for 'str1', 'str2' */
6
7echo "*** Test strncasecmp() function: with here-doc strings ***\n";
8
9/* multi line heredoc string */
10$multi_line_str = <<<EOD
11Example of string
12spanning multiple lines
13using heredoc syntax.
14EOD;
15
16/* identifier name contains underscore */
17$identifier_str1 = <<<identifier_str1
18Example of heredoc
19string, whose identifier
20having underscore("_")
21& numeric value.
22identifier_str1;
23
24/* identifier name starts with underscore */
25$identifier_str2 = <<<_identifier_str2
26Hello, World
27hello, world
28_identifier_str2;
29
30/* string containing control character */
31$control_char_str = <<<EOD
32Hello, World\n
33Hello\0World
34EOD;
35
36/* heredoc string with quote chars & slash */
37$quote_char_string = <<<EOD
38it's bright,but i cann't see it.
39"things in double quote"
40'things in single quote'
41this\line is /with\slashs
42EOD;
43
44/* heredoc string with blank line */
45$blank_line = <<<EOD
46
47EOD;
48
49/* empty heredoc string */
50$empty_string = <<<EOD
51EOD;
52
53$strings = array(
54  $multi_line_str,
55  $identifier_str1,
56  $identifier_str2,
57  $control_char_str,
58  $quote_char_string,
59  $blank_line,
60  $empty_string
61);
62/* loop through to compare the strings */
63$index2 = count($strings);
64for($index1 = 0; $index1 < count($strings); $index1++) {
65  $index2--;
66  var_dump( strncasecmp( $strings[$index1], $strings[$index1], strlen($strings[$index1]) ) );
67  var_dump( strncasecmp( $strings[$index1], $strings[$index2], strlen($strings[$index1]) ) );
68}
69echo "*** Done ***\n";
70?>
71--EXPECT--
72*** Test strncasecmp() function: with here-doc strings ***
73int(0)
74int(63)
75int(0)
76int(83)
77int(0)
78int(-1)
79int(0)
80int(0)
81int(0)
82int(1)
83int(0)
84int(0)
85int(0)
86int(0)
87*** Done ***
88