Hướng dẫn include function in class php - bao gồm chức năng trong lớp php

Không. Bạn không thể bao gồm các tập tin trong cơ thể lớp. Trong một tệp xác định một lớp, bạn chỉ có thể bao gồm các tệp trong thân phương thức hoặc bên ngoài thân lớp.
In a file defining a class, you may only include files in a method body or outside the class body.

Từ mô tả của bạn, tôi muốn bạn muốn điều này:

$_prop = 1;
}

Chạy mã này sẽ dẫn đến

Parse error: syntax error, unexpected T_INCLUDE, expecting T_FUNCTION

Những gì có thể mặc dù đây là

Thực hiện theo cách này, sẽ nhập nội dung của tệp bao gồm vào phạm vi phương thức, không phải phạm vi lớp. Bạn có thể bao gồm các chức năng và biến trong tệp bao gồm, nhưng không phải là phương thức. Bạn có thể nhưng không nên đặt toàn bộ tập lệnh vào đó và thay đổi những gì phương thức làm, ví dụ:could but should not put entire scripts into it as well and change what the method does, e.g.

Tuy nhiên, việc vá lớp theo cách này để thể hiện hành vi khác nhau không phải là cách bạn nên làm trong OOP. Nó chỉ đơn giản là sai và nên làm cho đôi mắt của bạn chảy máu.

Vì bạn muốn tự động thay đổi hành vi, việc mở rộng lớp cũng không phải là một lựa chọn tốt (xem bên dưới lý do tại sao). Những gì bạn thực sự sẽ muốn làm là viết một giao diện và làm cho các đối tượng sử dụng lớp của bạn triển khai giao diện này, do đó đảm bảo các phương thức phù hợp có sẵn. Đây được gọi là một mẫu chiến lược và hoạt động như thế này:

Bây giờ bạn có hợp đồng rằng tất cả các hành vi meo meo phải tuân theo, cụ thể là có một phương pháp meo. Tiếp theo xác định một hành vi meo meo:

Bây giờ để sử dụng nó, sử dụng:

_meowing = $meowing;
    }

    public function meow()
    {
        $this->_meowing->meow()
    }
}

Bằng cách thêm typeHint Meowing vào SetMeowing, bạn đảm bảo rằng thông số được truyền thực hiện giao diện Meowing. Hãy xác định một hành vi khác của tôi:

Bây giờ, bạn có thể dễ dàng trao đổi các hành vi như thế này:

setMeowing(new RegularMeow);
echo $cat->meow; // outputs 'meow';
// now to change the behavior
$cat->setMeowing(new LolkatMeow);
echo $cat->meow; // outputs 'lolz xD';

Mặc dù bạn cũng có thể giải quyết được điều trên với sự kế thừa bằng cách xác định một phương pháp basecat và meo trừu tượng và sau đó lấy các lớp thông thường cụ thể và các lớp Lolkat từ đó, bạn phải xem xét những gì bạn muốn đạt được. Nếu mèo của bạn sẽ không bao giờ thay đổi cách chúng meo, hãy tiếp tục và sử dụng kế thừa, nhưng nếu thông thường của bạn và Lolkat của bạn được cho là có thể thực hiện meows tùy ý, thì hãy sử dụng mẫu chiến lược.

Để biết thêm các mẫu thiết kế trong PHP, hãy kiểm tra các tài nguyên này:

  • http://www.php.net/manual/en/language.oop5.patterns.php
  • http://www.ibm.com/developerworks/library/os-php-designptrns/
  • http://www.fluffycat.com/PHP-Design-Patterns/
  • http://sourcemaking.com/design_patterns

Ray.paseur thường sử dụng gmail ¶

8 năm trước

Anonphpuser ¶require.

1 tháng trước

Parse error: syntax error, unexpected T_INCLUDE, expecting T_FUNCTION
2 if it cannot find a file; this is different behavior from require, which will emit an
Parse error: syntax error, unexpected T_INCLUDE, expecting T_FUNCTION
3
.

Lưu ý rằng cả include

Parse error: syntax error, unexpected T_INCLUDE, expecting T_FUNCTION
5 đều tăng thêm
Parse error: syntax error, unexpected T_INCLUDE, expecting T_FUNCTION
2, nếu không thể truy cập tệp, trước khi tăng lần lượt là
Parse error: syntax error, unexpected T_INCLUDE, expecting T_FUNCTION
2 hoặc
Parse error: syntax error, unexpected T_INCLUDE, expecting T_FUNCTION
3 cuối cùng.
Parse error: syntax error, unexpected T_INCLUDE, expecting T_FUNCTION
2
s, if the file cannot be accessed, before raising the final
Parse error: syntax error, unexpected T_INCLUDE, expecting T_FUNCTION
2
or
Parse error: syntax error, unexpected T_INCLUDE, expecting T_FUNCTION
3
, respectively.

Nếu một đường dẫn được xác định - cho dù là tuyệt đối (bắt đầu với một ký tự ổ đĩa hoặc

Parse error: syntax error, unexpected T_INCLUDE, expecting T_FUNCTION
9 trên Windows hoặc
0 trên các hệ thống UNIX/Linux) hoặc so với thư mục hiện tại (bắt đầu bằng
1 hoặc
2) - sẽ bị bỏ qua hoàn toàn. Ví dụ: nếu một tên tệp bắt đầu bằng
3, trình phân tích cú pháp sẽ tìm trong thư mục cha để tìm tệp được yêu cầu.

Để biết thêm thông tin về cách xử lý PHP bao gồm các tệp và đường dẫn bao gồm, hãy xem tài liệu cho bao gồm_path.

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. Tuy nhiên, tất cả các chức năng và các lớp được xác định trong tệp bao gồm có phạm vi toàn cầu.

Ví dụ #1 Ví dụ include

5

6

7

Nếu bao gồm xảy ra bên trong một hàm trong tệp gọi, thì tất cả các mã có trong tệp được gọi sẽ hoạt động như thể nó đã được xác định bên trong hàm đó. Vì vậy, nó sẽ theo phạm vi biến của chức năng đó. Một ngoại lệ cho quy tắc này là các hằng số ma thuật được đánh giá bởi trình phân tích cú pháp trước khi bao gồm xảy ra.

Ví dụ #2 bao gồm trong các chức năng

8

9

0

Khi bao gồm một tệp, phân tích cú pháp rơi ra khỏi chế độ PHP và vào chế độ HTML ở đầu tệp đích và tiếp tục lại ở cuối. Vì lý do này, bất kỳ mã nào bên trong tệp đích sẽ được thực thi dưới dạng mã PHP phải được đặt trong các thẻ bắt đầu và kết thúc PHP hợp lệ.

Nếu "URL bao gồm trình bao bọc" được bật trong PHP, bạn có thể chỉ định tệp được bao gồm bằng URL (thông qua HTTP hoặc trình bao bọc được hỗ trợ khác - xem các giao thức và trình bao quy hoạt được hỗ trợ cho danh sách các giao thức) thay vì tên đường dẫn cục bộ. Nếu máy chủ đích diễn giải tệp đích làm mã PHP, các biến có thể được chuyển đến tệp được bao gồm bằng chuỗi yêu cầu URL như được sử dụng với HTTP GET. Điều này không hoàn toàn nói điều tương tự như bao gồm tệp và việc kế thừa phạm vi biến của tệp cha mẹ; Kịch bản thực sự đang được chạy trên máy chủ từ xa và kết quả sau đó được đưa vào tập lệnh cục bộ.

Ví dụ #3 include đến HTTP

2

3

4

Cảnh báo

Cảnh báo an ninh

Tệp từ xa có thể được xử lý tại máy chủ từ xa (tùy thuộc vào phần mở rộng tệp và thực tế nếu máy chủ từ xa chạy PHP hay không) nhưng nó vẫn phải tạo ra một tập lệnh PHP hợp lệ vì nó sẽ được xử lý tại máy chủ cục bộ. Nếu tệp từ máy chủ từ xa nên được xử lý ở đó và chỉ xuất ra, readFile () có chức năng tốt hơn nhiều để sử dụng. Nếu không, cần phải chăm sóc đặc biệt để bảo mật tập lệnh từ xa để tạo mã hợp lệ và mong muốn.readfile() is much better function to use. Otherwise, special care should be taken to secure the remote script to produce a valid and desired code.

Xem thêm các tệp từ xa, fopen () và file () để biết thông tin liên quan.fopen() and file() for related information.

Trả lại xử lý: include Trả về

6 về thất bại và đưa ra cảnh báo. Thành công bao gồm, trừ khi được ghi đè bởi tệp đi kèm, trả về
7. Có thể thực thi câu lệnh trả về bên trong một tệp được bao gồm để chấm dứt xử lý trong tệp đó và quay lại tập lệnh gọi nó. Ngoài ra, có thể trả về các giá trị từ các tệp được bao gồm. Bạn có thể lấy giá trị của cuộc gọi bao gồm như bạn sẽ làm cho một hàm bình thường. Tuy nhiên, điều này không thể xảy ra khi bao gồm các tệp từ xa trừ khi đầu ra của tệp từ xa có thẻ bắt đầu và kết thúc PHP hợp lệ (như với bất kỳ tệp cục bộ nào). Bạn có thể khai báo các biến cần thiết trong các thẻ đó và chúng sẽ được giới thiệu tại bất kỳ điểm nào được đưa vào tệp.return statement inside an included file in order to terminate processing in that file and return to the script which called it. Also, it's possible to return values from included files. You can take the value of the include call as you would for a normal function. This is not, however, possible when including remote files unless the output of the remote file has valid PHP start and end tags (as with any local file). You can declare the needed variables within those tags and they will be introduced at whichever point the file was included.

Bởi vì include là một cấu trúc ngôn ngữ đặc biệt, dấu ngoặc đơn không cần thiết xung quanh lập luận của nó. Hãy cẩn thận khi so sánh giá trị trả lại.

Ví dụ #4 So sánh giá trị trả về của bao gồm

9

Ví dụ #5 include và câu lệnh trả vềreturn statement

1

2

3

4 là giá trị
7 vì bao gồm đã thành công. Lưu ý sự khác biệt giữa các ví dụ trên. Việc sử dụng đầu tiên trả về trong tệp được bao gồm trong khi tài liệu khác thì không. Nếu tệp không thể được bao gồm,
6 sẽ được trả về và
Parse error: syntax error, unexpected T_INCLUDE, expecting T_FUNCTION
2 được phát hành.return within the included file while the other does not. If the file can't be included,
6
is returned and
Parse error: syntax error, unexpected T_INCLUDE, expecting T_FUNCTION
2
is issued.

Nếu có các chức năng được xác định trong tệp bao gồm, chúng có thể được sử dụng trong tệp chính độc lập nếu chúng trước khi trả về hoặc sau. Nếu tệp được bao gồm hai lần, PHP sẽ gây ra lỗi nghiêm trọng vì các chức năng đã được khai báo. Nên sử dụng bao gồm_once thay vì kiểm tra xem tệp đã được bao gồm và có điều kiện trả về bên trong tệp được bao gồm.return or after. If the file is included twice, PHP will raise a fatal error because the functions were already declared. It is recommended to use include_once instead of checking if the file was already included and conditionally return inside the included file.

Một cách khác để "bao gồm" một tệp PHP vào một biến là nắm bắt đầu ra bằng cách sử dụng các chức năng điều khiển đầu ra với include. Ví dụ:

Ví dụ #6 Sử dụng bộ đệm đầu ra để bao gồm tệp PHP vào chuỗi

9

0

1

Để tự động bao gồm các tệp trong các tập lệnh, hãy xem thêm các tùy chọn cấu hình auto_prepend_file và auto_append_file trong php.ini.

Lưu ý: Bởi vì đây là một cấu trúc ngôn ngữ và không phải là một hàm, nó không thể được gọi là sử dụng các hàm biến hoặc các đối số được đặt tên.: Because this is a language construct and not a function, it cannot be called using variable functions, or named arguments.

Xem thêm Yêu cầu, Yêu cầu_once, Bao gồm_once, get_included_files (), readFile (), ảo () và bao gồm_path.require, require_once, include_once, get_included_files(), readfile(), virtual(), and include_path.

Snowyurik tại gmail dot com

14 năm trước

2

Phát ban ¶

7 năm trước

3

4

5

6

John Carty ¶

6 năm trước

7

8

9

_meowing = $meowing;
    }

    public function meow()
    {
        $this->_meowing->meow()
    }
}
0

_meowing = $meowing;
    }

    public function meow()
    {
        $this->_meowing->meow()
    }
}
1

_meowing = $meowing;
    }

    public function meow()
    {
        $this->_meowing->meow()
    }
}
2

_meowing = $meowing;
    }

    public function meow()
    {
        $this->_meowing->meow()
    }
}
3

_meowing = $meowing;
    }

    public function meow()
    {
        $this->_meowing->meow()
    }
}
4

_meowing = $meowing;
    }

    public function meow()
    {
        $this->_meowing->meow()
    }
}
5

Anon ¶

10 năm trước

_meowing = $meowing;
    }

    public function meow()
    {
        $this->_meowing->meow()
    }
}
6

Lỗi17191 tại Gmail Dot Com ¶

7 năm trước

_meowing = $meowing;
    }

    public function meow()
    {
        $this->_meowing->meow()
    }
}
7

_meowing = $meowing;
    }

    public function meow()
    {
        $this->_meowing->meow()
    }
}
8

_meowing = $meowing;
    }

    public function meow()
    {
        $this->_meowing->meow()
    }
}
9

0

_meowing = $meowing;
    }

    public function meow()
    {
        $this->_meowing->meow()
    }
}
5

John Carty ¶

14 năm trước

2

3

_meowing = $meowing;
    }

    public function meow()
    {
        $this->_meowing->meow()
    }
}
5

Phát ban ¶

14 năm trước

5

6

7

8

9

setMeowing(new RegularMeow);
echo $cat->meow; // outputs 'meow';
// now to change the behavior
$cat->setMeowing(new LolkatMeow);
echo $cat->meow; // outputs 'lolz xD';
0

setMeowing(new RegularMeow);
echo $cat->meow; // outputs 'meow';
// now to change the behavior
$cat->setMeowing(new LolkatMeow);
echo $cat->meow; // outputs 'lolz xD';
1

_meowing = $meowing;
    }

    public function meow()
    {
        $this->_meowing->meow()
    }
}
5

Phát ban ¶

7 năm trước

setMeowing(new RegularMeow);
echo $cat->meow; // outputs 'meow';
// now to change the behavior
$cat->setMeowing(new LolkatMeow);
echo $cat->meow; // outputs 'lolz xD';
3

setMeowing(new RegularMeow);
echo $cat->meow; // outputs 'meow';
// now to change the behavior
$cat->setMeowing(new LolkatMeow);
echo $cat->meow; // outputs 'lolz xD';
4

_meowing = $meowing;
    }

    public function meow()
    {
        $this->_meowing->meow()
    }
}
5

John Carty ¶

6 năm trước

setMeowing(new RegularMeow);
echo $cat->meow; // outputs 'meow';
// now to change the behavior
$cat->setMeowing(new LolkatMeow);
echo $cat->meow; // outputs 'lolz xD';
6

setMeowing(new RegularMeow);
echo $cat->meow; // outputs 'meow';
// now to change the behavior
$cat->setMeowing(new LolkatMeow);
echo $cat->meow; // outputs 'lolz xD';
7

_meowing = $meowing;
    }

    public function meow()
    {
        $this->_meowing->meow()
    }
}
5

Anon ¶

10 năm trước

setMeowing(new RegularMeow);
echo $cat->meow; // outputs 'meow';
// now to change the behavior
$cat->setMeowing(new LolkatMeow);
echo $cat->meow; // outputs 'lolz xD';
9

Lỗi17191 tại Gmail Dot Com ¶

WADE. ¶

include0

include1

_meowing = $meowing;
    }

    public function meow()
    {
        $this->_meowing->meow()
    }
}
5

Rick Garcia ¶

jbezorg tại gmail dot com ¶

include3

include4

include5

include6

include7

_meowing = $meowing;
    }

    public function meow()
    {
        $this->_meowing->meow()
    }
}
5

4 năm trước

Ray.paseur thường sử dụng gmail ¶

include9

Parse error: syntax error, unexpected T_INCLUDE, expecting T_FUNCTION
00

Parse error: syntax error, unexpected T_INCLUDE, expecting T_FUNCTION
01

_meowing = $meowing;
    }

    public function meow()
    {
        $this->_meowing->meow()
    }
}
5

8 năm trước

Ray.paseur thường sử dụng gmail ¶

Parse error: syntax error, unexpected T_INCLUDE, expecting T_FUNCTION
03

Parse error: syntax error, unexpected T_INCLUDE, expecting T_FUNCTION
04

Parse error: syntax error, unexpected T_INCLUDE, expecting T_FUNCTION
05

Parse error: syntax error, unexpected T_INCLUDE, expecting T_FUNCTION
06

Parse error: syntax error, unexpected T_INCLUDE, expecting T_FUNCTION
07

Parse error: syntax error, unexpected T_INCLUDE, expecting T_FUNCTION
08

Parse error: syntax error, unexpected T_INCLUDE, expecting T_FUNCTION
09

8 năm trước

Anonphpuser ¶

Parse error: syntax error, unexpected T_INCLUDE, expecting T_FUNCTION
10

1 tháng trước

splayer ¶

Parse error: syntax error, unexpected T_INCLUDE, expecting T_FUNCTION
11

Parse error: syntax error, unexpected T_INCLUDE, expecting T_FUNCTION
12

_meowing = $meowing;
    }

    public function meow()
    {
        $this->_meowing->meow()
    }
}
5

11 năm trước

14 năm trước

Parse error: syntax error, unexpected T_INCLUDE, expecting T_FUNCTION
14

Parse error: syntax error, unexpected T_INCLUDE, expecting T_FUNCTION
15

Parse error: syntax error, unexpected T_INCLUDE, expecting T_FUNCTION
16

Parse error: syntax error, unexpected T_INCLUDE, expecting T_FUNCTION
17

Parse error: syntax error, unexpected T_INCLUDE, expecting T_FUNCTION
18

Phát ban ¶

7 năm trước

Parse error: syntax error, unexpected T_INCLUDE, expecting T_FUNCTION
19

Parse error: syntax error, unexpected T_INCLUDE, expecting T_FUNCTION
20

Parse error: syntax error, unexpected T_INCLUDE, expecting T_FUNCTION
21

Parse error: syntax error, unexpected T_INCLUDE, expecting T_FUNCTION
22

Parse error: syntax error, unexpected T_INCLUDE, expecting T_FUNCTION
23

Parse error: syntax error, unexpected T_INCLUDE, expecting T_FUNCTION
24

_meowing = $meowing;
    }

    public function meow()
    {
        $this->_meowing->meow()
    }
}
5

John Carty ¶

6 năm trước

Parse error: syntax error, unexpected T_INCLUDE, expecting T_FUNCTION
26

Parse error: syntax error, unexpected T_INCLUDE, expecting T_FUNCTION
27

Parse error: syntax error, unexpected T_INCLUDE, expecting T_FUNCTION
28

Parse error: syntax error, unexpected T_INCLUDE, expecting T_FUNCTION
29

Parse error: syntax error, unexpected T_INCLUDE, expecting T_FUNCTION
30

Parse error: syntax error, unexpected T_INCLUDE, expecting T_FUNCTION
31

_meowing = $meowing;
    }

    public function meow()
    {
        $this->_meowing->meow()
    }
}
5

Anon ¶

7 năm trước

Parse error: syntax error, unexpected T_INCLUDE, expecting T_FUNCTION
33

Parse error: syntax error, unexpected T_INCLUDE, expecting T_FUNCTION
34

Parse error: syntax error, unexpected T_INCLUDE, expecting T_FUNCTION
35

Parse error: syntax error, unexpected T_INCLUDE, expecting T_FUNCTION
36

John Carty ¶

14 năm trước

Parse error: syntax error, unexpected T_INCLUDE, expecting T_FUNCTION
37

Parse error: syntax error, unexpected T_INCLUDE, expecting T_FUNCTION
38

_meowing = $meowing;
    }

    public function meow()
    {
        $this->_meowing->meow()
    }
}
5

Phát ban ¶

7 năm trước

Parse error: syntax error, unexpected T_INCLUDE, expecting T_FUNCTION
40

Parse error: syntax error, unexpected T_INCLUDE, expecting T_FUNCTION
41

Parse error: syntax error, unexpected T_INCLUDE, expecting T_FUNCTION
42

John Carty ¶

Hàm bao gồm () được sử dụng cho là gì?

Hàm bao gồm () được sử dụng để đặt dữ liệu của một tệp PHP vào tệp PHP khác. Nếu các lỗi xảy ra thì hàm bao gồm () tạo ra cảnh báo nhưng không dừng việc thực thi tập lệnh, tức là tập lệnh sẽ tiếp tục thực thi. Trước hết chúng tôi tạo một tệp PHP.to put data of one PHP file into another PHP file. If errors occur then the include() function produces a warning but does not stop the execution of the script i.e. the script will continue to execute. First of all we create a PHP file.

Sự khác biệt giữa yêu cầu và bao gồm trong PHP là gì?

Bao gồm () vs yêu cầu () Sự khác biệt duy nhất là câu lệnh bao gồm () tạo ra cảnh báo PHP nhưng cho phép thực hiện tập lệnh được tiến hành nếu không thể tìm thấy tệp. Đồng thời, câu lệnh yêu cầu () tạo ra một lỗi nghiêm trọng và chấm dứt tập lệnh.

Sự khác biệt giữa bao gồm và bao gồm_once trong PHP là gì?

Bao gồm_once Đây là một hành vi tương tự như câu lệnh bao gồm, với sự khác biệt duy nhất là nếu mã từ một tệp đã được đưa vào, nó sẽ không được bao gồm lại và bao gồm_once trả về đúng.Như tên cho thấy, tệp sẽ được bao gồm chỉ một lần.if the code from a file has already been included, it will not be included again, and include_once returns true . As the name suggests, the file will be included just once.

Làm thế nào bao gồm lớp từ một tệp khác trong PHP?

Sử dụng bao gồm ("class.classname.php"); classname. php");