Потому что function _z
не является представлением. Назовите это с $this->_z($array);
. Также представления обрабатываются CodeIgniter и переменные передаются в них. Это не работает одинаково для не просмотров. PHP не сделает этого автоматически для вас.
Чтобы загрузить представление, создайте файл представления в /system/application/views/
и вызовите его с помощью $this->load->view('my_view_name', $array);
Я бы переписал ваши функции следующим образом:
function xy()
{
$x = "some value";
$y = "some other value";
echo $this->_z($x, $y);
}
function _z($a, $b)
{
return $a.$b;
}