10/10/2018, 10:08
PHP - Làm sao để send biến qua included file
Chào các bạn,
Giả sử mình có 1 file php như thế này
* File A.php:
$abc = '123';
function printHello($name)
{
echo 'Hello ' . $name;
}
assign ($abc)
include ('B.php');
Và 1 file như vầy
* File B.php
echo $abc
// Hoặc bằng 1 cách nào đó lấy được giá trị của $abc
printHello($name)
// Hoặc chạy được hàm tương ứng với hàm trên
Giả sử mình có 1 file php như thế này
* File A.php:
$abc = '123';
function printHello($name)
{
echo 'Hello ' . $name;
}
assign ($abc)
include ('B.php');
Và 1 file như vầy
* File B.php
echo $abc
// Hoặc bằng 1 cách nào đó lấy được giá trị của $abc
printHello($name)
// Hoặc chạy được hàm tương ứng với hàm trên
Bài liên quan
Cách 2: include file chứa biến, lấy giá trị lưu vào session
Cách 3: include file chứa biến, lấy giá trị và truyền qua method GET
...
Source của bạn đâu có gọi lại mấy biến từ trong hàm nào đâu nên xài global không giải quyết được vấn đề vì các biến của bạn khai báo đã nằm chung 1 scope rồi.
Mình test thử rồi, bạn khai báo biến trong A.php thì trong B.php vẫn sử dụng được mà, kể cả ngược lại định nghĩa trong B thì A vẫn gọi được :|.
Đây là code mình test:
A.php
<?php
// Định nghĩa biến $abc
$abc = '123';
// Định nghĩa hàm printHello
function printHello($name) {
echo 'Hello ' . $name;
}
// include file B.php
include('B.php');
// Gọi biến từ file B.php
echo $cde;
<?php
// Lấy biến $abc từ file A.php
echo $abc;
// Gọi hàm printHello từ file A.php
printHello('Shellingfox');
// Định nghĩa biến trong file B
$cde = '456';
File View.php:
<?php
class View
{
static public function display($templateFile)
{
include(_L_THEME_DIR_.$templateFile);
}
static public function assignVar($name, $value)
{
??????
}
static public function assignFunction($name, $paramType, $returnType)
{
??????
}
}
?>
File index.php:
<?php
include ('View.php');
function doTesting($value, 'in')
{
return $value;
}
View::assignVar('test', 10);
View::assignFunction('doTesting', 'string', 'string');
View::display('index.html');
?>
File index.html:
<?php
echo $test;
echo $doTesting('ABCDEF');
?>
Mình đang thiết kế 1 template engine "cây nhà lá vườn". Giúp mình với nha.
À hóa ra bạn muốn xử dụng cái kiểu này. Cái này thì không phải là trong include rồi.
Bạn thử hàm eval thử, có cần example thì nói mình.