Hướng dẫn php pass variable to include file - php pass biến để bao gồm tệp

Tôi đang cố gắng chuyển một biến vào một tệp bao gồm. Máy chủ của tôi đã thay đổi phiên bản PHP và bây giờ bất kỳ giải pháp nào tôi thử không hoạt động.

Tôi nghĩ rằng tôi đã thử mọi tùy chọn tôi có thể tìm thấy. Tôi chắc rằng đó là điều đơn giản nhất!

Biến cần được đặt và đánh giá từ tệp đầu tiên gọi (thực sự là

function passvariable(){
    $variable = "apple";
    return $variable;
}
passvariable();
5 và cần trả về đường dẫn của tệp đó, chứ không phải
function passvariable(){
    $variable = "apple";
    return $variable;
}
passvariable();
6).

Tùy chọn một

Trong tệp đầu tiên:

global $variable;
$variable = "apple";
include('second.php');

Trong tệp thứ hai:

echo $variable;

Tùy chọn hai

Trong tệp đầu tiên:

function passvariable(){
    $variable = "apple";
    return $variable;
}
passvariable();

Trong tệp thứ hai:

$variable = "apple";
include "myfile.php?var=$variable"; // and I tried with http: and full site address too.


$variable = $_GET["var"]
echo $variable

Tùy chọn hai

Tùy chọn ba

Thanks!

Hướng dẫn php pass variable to include file - php pass biến để bao gồm tệp

Không ai trong số này làm việc cho tôi. Phiên bản PHP là 5.2.16.

Tôi còn thiếu gì?100 gold badges356 silver badges624 bronze badges

PacerierAug 10, 2012 at 15:50

4

83.2K100 Huy hiệu vàng356 Huy hiệu bạc624 Huy hiệu đồng
Drupal use it, in its theme() function.

Hỏi ngày 10 tháng 8 năm 2012 lúc 15:50

function includeWithVariables($filePath, $variables = array(), $print = true)
{
    $output = NULL;
    if(file_exists($filePath)){
        // Extract the variables to a local namespace
        extract($variables);

        // Start output buffering
        ob_start();

        // Include the template file
        include $filePath;

        // End buffering and return its contents
        $output = ob_get_clean();
    }
    if ($print) {
        print $output;
    }
    return $output;

}


Bạn có thể sử dụng hàm trích xuất () drupal sử dụng nó, trong hàm chủ đề () của nó.

Đây là một hàm kết xuất với đối số
function passvariable(){
    $variable = "apple";
    return $variable;
}
passvariable();
7.

./index.php:

includeWithVariables('header.php', array('title' => 'Header Title'));
Aug 8, 2017 at 8:48

thi3rrythi3rrythi3rry

./header.php:5 silver badges6 bronze badges

3

Đã trả lời ngày 8 tháng 8 năm 2017 lúc 8:48

7105 Huy hiệu bạc6 Huy hiệu Đồng

Tùy chọn 3 là không thể - bạn sẽ nhận được đầu ra được hiển thị của tệp .PHP, chính xác như bạn làm nếu bạn nhấn URL đó trong trình duyệt của mình. Nếu bạn có mã PHP RAW thay thế (như bạn muốn), thì tất cả mã nguồn của trang web của bạn sẽ được hiển thị, thường không phải là một điều tốt.

$x = 'foo';
include('bar.php');

Tùy chọn 2 không có nhiều ý nghĩa - bạn sẽ ẩn biến trong một hàm và phải tuân theo phạm vi biến của PHP. Bạn cũng phải có

function passvariable(){
    $variable = "apple";
    return $variable;
}
passvariable();
8 ở đâu đó để có được biến 'bên trong' đó vào 'bên ngoài' và bạn trở lại hình vuông.

$x = 'foo';
// contents of bar.php pasted here

Hướng dẫn php pass variable to include file - php pass biến để bao gồm tệp

Lựa chọn 1 là thực tế nhất.

function passvariable(){
    $variable = "apple";
    return $variable;
}
passvariable();
9 về cơ bản sẽ nhúng vào tệp được chỉ định và thực thi nó ngay tại đó, như thể mã trong tệp thực sự là một phần của trang cha. Nó trông giống như một biến số toàn cầu, mà hầu hết mọi người ở đây đều nhăn mặt, nhưng bằng ngữ nghĩa phân tích cú pháp của PHP, hai người này giống hệt nhau:Aug 10, 2012 at 15:55

Marc B

Đã trả lời ngày 10 tháng 8 năm 2012 lúc 15:5542 gold badges404 silver badges488 bronze badges

2

Marc Bmarc b

352K42 Huy hiệu vàng404 Huy hiệu bạc488 Huy hiệu đồng

Xem xét rằng một thống kê bao gồm trong PHP ở cấp độ cơ bản nhất lấy mã từ một tệp và dán nó vào nơi bạn gọi nó và thực tế là hướng dẫn sử dụng bao gồm các trạng thái như sau:

vars.php


test.php

Khi một tệp được bao gồm, mã nó chứa kế thừa phạm vi biến của dòng mà bao gồm xảy ra. Bất kỳ biến nào có sẵn ở dòng đó trong tệp gọi sẽ có sẵn trong tệp được gọi, từ thời điểm đó trở đi.

Những điều này khiến tôi nghĩ rằng có một vấn đề khác nhau. Ngoài ra, tùy chọn số 3 sẽ không bao giờ hoạt động vì bạn không chuyển hướng đến

function passvariable(){
    $variable = "apple";
    return $variable;
}
passvariable();
6 Bạn chỉ bao gồm nó và tùy chọn số 2 chỉ là một công việc kỳ lạ xung quanh. Ví dụ cơ bản nhất của việc bao gồm TUYỆT VỜI trong PHP là:Aug 10, 2012 at 15:59

Xem xét tùy chọn số một là gần nhất với ví dụ này (mặc dù phức tạp hơn thì nó cũng như vậy) và nó không hoạt động, nó khiến tôi nghĩ rằng bạn đã phạm sai lầm trong câu lệnh bao gồm (con đường sai liên quan đến gốc hoặc tương tự vấn đề).Florin Stingaciu

Đã trả lời ngày 10 tháng 8 năm 2012 lúc 15:592 gold badges23 silver badges43 bronze badges

1

Florin Stingaciuflorin Stingaciu

echo $variable;
0

7.8952 Huy hiệu vàng23 Huy hiệu bạc43 Huy hiệu đồng

echo $variable;
1

Tôi có cùng một vấn đề ở đây, bạn có thể sử dụng mảng $ Globals.

Nó cũng nên chạy làm điều này:Nov 24, 2015 at 9:17

Chúc một ngày tốt lành.Daniel

Đã trả lời ngày 24 tháng 11 năm 2015 lúc 9:171 gold badge10 silver badges25 bronze badges

Danieldaniel

7791 Huy hiệu vàng10 Huy hiệu bạc25 Huy hiệu đồng

echo $variable;
2

Tôi đã gặp phải vấn đề này khi tôi có một tệp đặt các biến dựa trên các tham số GET. Và tệp đó không thể cập nhật vì nó hoạt động chính xác trên một phần khác của hệ thống quản lý nội dung lớn. Tuy nhiên, tôi muốn chạy mã đó thông qua một tệp bao gồm mà không có các tham số thực sự nằm trong chuỗi URL. Giải pháp đơn giản là bạn có thể đặt các biến GET trong tệp đầu tiên như bạn sẽ làm bất kỳ biến nào khác.

echo $variable;
3

Thay vì:Jan 11, 2018 at 19:20

0

Nó sẽ là: worked for me, in PHP 7, and for sure it does in PHP 5 too. And the global scope declaration is not necessary for the included file for variables access, the included - or "required" - files are part of the script, only be sure you make the "include" AFTER the variable declaration. Maybe you have some misconfiguration with variables global scope in your PHP.ini?

Đã trả lời ngày 11 tháng 1 năm 2018 lúc 19:20

echo $variable;
4

mysecondfile.php

echo $variable;
5

Tùy chọn 1 đã làm việc cho tôi, trong Php 7, và chắc chắn nó cũng có trong Php 5. Và khai báo phạm vi toàn cầu là không cần thiết cho tệp được bao gồm để truy cập các biến, các tệp được bao gồm - hoặc "bắt buộc" - là một phần của tập lệnh, chỉ chắc chắn rằng bạn thực hiện "bao gồm" sau khi khai báo biến. Có thể bạn có một số cấu hình sai với các biến phạm vi toàn cầu trong php.ini của bạn?

Thử trong tệp đầu tiên:Jun 22, 2019 at 23:23

Hướng dẫn php pass variable to include file - php pass biến để bao gồm tệp

Nó sẽ hoạt động ... nếu nó không chỉ cố gắng cài đặt lại PHP.DrOne

Đã trả lời ngày 22 tháng 6 năm 2019 lúc 23:231 silver badge5 bronze badges

0

Dronedrone

711 Huy hiệu bạc5 Huy hiệu đồng

echo $variable;
6

Đã trả lời ngày 10 tháng 8 năm 2012 lúc 15:57Aug 10, 2012 at 15:57

2

Tôi biết đây là một câu hỏi cũ, nhưng vấp ngã bây giờ và thấy không ai đề cập đến điều này. Vì vậy, viết nó.

Tùy chọn một nếu điều chỉnh như thế này, nó cũng sẽ hoạt động.

Bản gốc

Tùy chọn một

Trong tệp đầu tiên:

echo $variable;
7

Trong tệp thứ hai:

$variable = "apple";
include "myfile.php?var=$variable"; // and I tried with http: and full site address too.


$variable = $_GET["var"]
echo $variable
1

Điều chỉnh

Trong tệp đầu tiên:

echo $variable;
8

Trong tệp thứ hai:

echo $variable;
9

Điều chỉnhNov 14, 2020 at 13:00

Đã trả lời ngày 14 tháng 11 năm 2020 lúc 13:00

Theo tài liệu PHP (xem $ _Server) $ _Server ['php_elf'] là "tên tệp của tập lệnh hiện đang thực hiện".

Câu lệnh bao gồm "Bao gồm và đánh giá" Tệp và "mã được chỉ định mà nó chứa kế thừa phạm vi biến của dòng mà bao gồm xảy ra" (xem bao gồm).

Tôi tin rằng $ _Server ['php_elf'] sẽ trả về tên tệp của tệp thứ nhất, ngay cả khi được sử dụng bởi mã trong 'Second.php'.

function passvariable(){
    $variable = "apple";
    return $variable;
}
passvariable();
0

Tôi đã thử nghiệm điều này với mã sau và nó hoạt động như mong đợi ($ PHPSelf là tên của tệp đầu tiên).Jul 8, 2014 at 18:06

Hướng dẫn php pass variable to include file - php pass biến để bao gồm tệp

Đã trả lời ngày 8 tháng 7 năm 2014 lúc 18:06Jim

Jimjim2 silver badges11 bronze badges

5782 Huy hiệu bạc11 Huy hiệu đồng

function passvariable(){
    $variable = "apple";
    return $variable;
}
passvariable();
1

Bạn có thể thực hiện tất cả trong "Second.php" thêm biến với jQueryJun 22, 2020 at 22:43

Đã trả lời ngày 22 tháng 6 năm 2020 lúc 22:43Vitalicus

Vitalicusvitalicus12 silver badges14 bronze badges

1.07312 Huy hiệu bạc14 Huy hiệu đồng

Một giải pháp thay thế cho việc sử dụng $ Globals là lưu trữ giá trị biến trong $ _Session trước khi bao gồm, sau đó đọc nó trong tệp đi kèm. Giống như $ Globals, $ _Session có sẵn từ mọi nơi trong kịch bản.May 18 at 23:36

Đã trả lời ngày 18 tháng 5 lúc 23:36

e.g.

Chuyển một biến cho tệp bao gồm bằng cách đặt biến $ _Session

$ _Session ['status'] = 1; Bao gồm 'Bao gồmfile.php';

// Sau đó, trong tệp bao gồm đọc biến $ _Session

$ status = $ _session ['status'];Sep 25 at 10:38

Hướng dẫn php pass variable to include file - php pass biến để bao gồm tệp

Đã trả lời ngày 25 tháng 9 lúc 10:38entire file path, not a relative path or partial path for this to work.

Tôi thấy rằng tham số bao gồm cần phải là toàn bộ đường dẫn tệp, không phải là đường dẫn tương đối hoặc đường dẫn một phần để điều này hoạt động.Jul 21, 2016 at 19:23

1

Đã trả lời ngày 21 tháng 7 năm 2016 lúc 19:23

firstFile.php

function passvariable(){
    $variable = "apple";
    return $variable;
}
passvariable();
2

secondFile.php

function passvariable(){
    $variable = "apple";
    return $variable;
}
passvariable();
3

Điều này đã làm việc cho tôi: để bọc nội dung của tệp thứ hai thành một hàm, như sau:Nov 19, 2017 at 17:07

Hướng dẫn php pass variable to include file - php pass biến để bao gồm tệp

Đã trả lời ngày 19 tháng 11 năm 2017 lúc 17:07Nicolas

Nicolasnicolas2 gold badges14 silver badges26 bronze badges

1.1742 huy hiệu vàng14 Huy hiệu bạc26 Huy hiệu đồng

function passvariable(){
    $variable = "apple";
    return $variable;
}
passvariable();
4

Làm cái này:

Hoàn tác ♦37 gold badges107 silver badges126 bronze badges

25.3K37 Huy hiệu vàng107 Huy hiệu bạc126 Huy hiệu đồngFeb 27, 2015 at 0:18

2

Những cách để bao gồm tệp trong PHP là gì?

PHP bao gồm các tập tin. Câu lệnh bao gồm (hoặc yêu cầu) lấy tất cả các văn bản/mã/đánh dấu tồn tại trong tệp được chỉ định và sao chép nó vào tệp sử dụng câu lệnh bao gồm. Bao gồm các tệp rất hữu ích khi bạn muốn bao gồm cùng một PHP, HTML hoặc văn bản trên nhiều trang của một trang web.The include (or require ) statement takes all the text/code/markup that exists in the specified file and copies it into the file that uses the include statement. Including files is very useful when you want to include the same PHP, HTML, or text on multiple pages of a website.

Cách chính xác để bao gồm một tệp văn bản PHP trong mã PHP là gì?

PHP bao gồm được sử dụng để bao gồm một tệp trên cơ sở đường dẫn đã cho.Bạn có thể sử dụng đường dẫn tương đối hoặc tuyệt đối của tệp ...
bao gồm 'tên tệp';.
bao gồm ('tên tệp') ;.

Làm thế nào để bạn gọi một biến từ một tệp khác trong PHP?

Ba phương thức mà bạn có thể sử dụng các biến của một tệp PHP trong một tệp PHP khác:..
Sử dụng phiên để chuyển biến từ trang này sang trang khác.phương pháp: ... .
Sử dụng phương thức Get và nhận các biến khi nhấp vào liên kết.phương pháp.....
Nếu bạn muốn vượt qua giá trị biến bằng nút bằng cách sử dụng nút thì bạn có thể sử dụng nó theo phương thức sau: $ x = 'value1'.

Làm thế nào bao gồm tất cả các tệp trong một thư mục trong PHP?

Để bao gồm tất cả các tệp PHP từ thư mục cùng một lúc cần một vòng lặp foreach ...
Ví dụ: Ví dụ này chứa bốn tệp PHP (File1. ...
Tạo File1.php trong thư mục 'MyGeek':.
Tạo File2.php trong thư mục 'MyGeeks':.
Tạo File3.php trong thư mục 'MyGeeks':.
Tạo File4.php trong thư mục 'MyGeeks':.
Tạo Main.php bên ngoài thư mục:.