有两个文件 run.php 和 class/functions.php 用于在 javascript 事件的 html 页面上放置一些文本(AJAX 用于此)。
run.php 文件是:
<?php
mb_internal_encoding("UTF-8");
require_once('class/functions.php');
$text = array();
$text[0]="rrrrrr";
strange_func($text, 0);//puts "фа" into $text[0]
$res1=$text[0];
$arr = array();
$arr['res1'] = $res1;
$arr['res2'] = "test";
header('Content-type: application/json');
echo json_encode($arr);
?>
类/functions.php 包含:
function strange_func(&$text, $i){
$text[$i]="hello123";//hello123 will be displayed on html page on javascript event
//$text[$i]="фь";
//if we comment hello123 and uncomment фь, then фь will NOT be displayed on the html page on javascript event by unknown reason. Why?
}
此外,如果我替换require_once('class/functions.php');
为
function strange_func(&$text, $i){
$text[$i]="фь";
}
,然后会显示“фь”。那么,如果文本是西里尔文,为什么函数strange_func
fromclass/functions.php
不显示文本?
上面的代码是简化的结果,没有太多意义。但是,问题依然存在。