Hướng dẫn is php variable case - là trường hợp biến php

Tại sao PHP là một phần trường hợp senstive?

Tôi chỉ có thể suy đoán rằng điều này bắt nguồn từ các phiên bản rất sớm, có thể là PHP/FI 2.0. Hướng dẫn sử dụng rõ ràng:

Hãy nhớ rằng tên hàm PHP/FI không nhạy cảm với trường hợp.

Hầu hết các đầu vào của người dùng, chẳng hạn như các tham số GET và POST, luôn được đăng ký dưới dạng các biến toàn cầu, hồi đó. Đối xử với những trường hợp này là không nhạy cảm có thể đã gây ra các vấn đề, và do đó, tất cả các biến đã được coi là nhạy cảm với trường hợp.

Từ những gì tôi có thể nói đây là loại định danh duy nhất trong PHP/FI 2.0. Tất cả những người khác đã được giới thiệu sau đó, dường như bắt chước các tên hàm không nhạy cảm trường hợp.

Các hằng số, đặc biệt, chỉ được giới thiệu như Php 4 (thủ công Php 3 đề cập đến "hằng số", nhưng ngày nay chúng được gọi là "nghĩa đen"). Vì một lý do bí ẩn nào đó (có thể không tìm thấy sự đồng thuận), nó đã được quyết định cho phép các định danh liên tục là define()D hoặc trường hợp nhạy cảm hoặc vô cảm đối với sự di cư của các nhà phát triển. Thật thú vị, trong khi define() mặc định là các hằng số nhạy cảm trường hợp, các đối tác C tương ứng (REGISTER_*_CONSTANT) mặc định là không nhạy cảm với trường hợp.

Các biến trong PHP được biểu thị bằng một dấu hiệu đô la theo sau là tên của biến. Tên biến là nhạy cảm trường hợp.

Tên biến tuân theo các quy tắc giống như các nhãn khác trong PHP. Một tên biến hợp lệ bắt đầu bằng một chữ cái hoặc dấu gạch dưới, theo sau là bất kỳ số lượng chữ cái, số hoặc dấu gạch dưới. Như một biểu hiện chính quy, nó sẽ được thể hiện như vậy: ^[a-zA-Z_\x80-\xff][a-zA-Z0-9_\x80-\xff]*$

Lưu ý: Đối với mục đích của chúng tôi ở đây, một lá thư là A-Z, A-Z và các byte từ 128 đến 255 (0x80-0xff).: For our purposes here, a letter is a-z, A-Z, and the bytes from 128 through 255 (0x80-0xff).

Lưu ý: $this là một biến đặc biệt không thể được chỉ định. Trước Php 7.1.0, việc gán gián tiếp (ví dụ: bằng cách sử dụng các biến biến) là có thể.: $this is a special variable that can't be assigned. Prior to PHP 7.1.0, indirect assignment (e.g. by using variable variables) was possible.

Để biết thông tin về các chức năng liên quan đến biến, hãy xem tham chiếu chức năng biến.

<?php
$var 
'Bob';
$Var 'Joe';
echo 
"$var$Var";      // outputs "Bob, Joe"$4site 'not yet';     // invalid; starts with a number
$_4site 'not yet';    // valid; starts with an underscore
$täyte 'mansikka';    // valid; 'ä' is (Extended) ASCII 228.
?>

Theo mặc định, các biến luôn được gán theo giá trị. Điều đó có nghĩa là, khi bạn gán một biểu thức cho một biến, toàn bộ giá trị của biểu thức gốc được sao chép vào biến đích. Điều này có nghĩa là, ví dụ, sau khi gán giá trị của một biến cho một biến khác, việc thay đổi một trong các biến đó sẽ không có tác dụng với biến khác. Để biết thêm thông tin về loại bài tập này, hãy xem chương về biểu thức.

PHP cũng cung cấp một cách khác để gán các giá trị cho các biến: gán theo tham chiếu. Điều này có nghĩa là biến mới chỉ đơn giản là tham chiếu (nói cách khác, "trở thành bí danh cho" hoặc "điểm cho") biến ban đầu. Các thay đổi đối với biến mới ảnh hưởng đến bản gốc và ngược lại.

Để gán bằng tham chiếu, chỉ cần trả một ampersand (&) cho đầu biến đang được gán (biến nguồn). Chẳng hạn, mã đầu ra mã sau đây 'My name is Bob' hai lần:

<?php
$foo 
'Bob';              // Assign the value 'Bob' to $foo
$bar = &$foo;              // Reference $foo via $bar.
$bar "My name is $bar";  // Alter $bar...
echo $bar;
echo 
$foo;                 // $foo is altered too.
?>

Một điều quan trọng cần lưu ý là chỉ các biến được đặt tên mới có thể được gán bằng tham chiếu.

<?php
$foo 
25;
$bar = &$foo;      // This is a valid assignment.
$bar = &(24 7);  // Invalid; references an unnamed expression.function test()
{
   return 
25;
}
$bar = &test();    // Invalid.
?>

Không cần thiết phải khởi tạo các biến trong PHP tuy nhiên nó là một thực tiễn rất tốt. Các biến không được tiêu cực có giá trị mặc định thuộc loại của chúng tùy thuộc vào ngữ cảnh mà chúng được sử dụng - booleans mặc định là ____10, số nguyên và floats mặc định về 0 mảng.define()0, integers and floats default to zero, strings (e.g. used in echo) are set as an empty string and arrays become to an empty array.

Ví dụ #1 Giá trị mặc định của các biến không được chỉ định

define()1

Dựa vào giá trị mặc định của một biến không chính thức là có vấn đề trong trường hợp bao gồm một tệp vào một tệp khác sử dụng cùng một tên biến. Lỗi cấp E_NOTICE được ban hành trong trường hợp làm việc với các biến không được chỉ định, tuy nhiên không phải trong trường hợp nối thêm các phần tử vào mảng không được hưởng. Cấu trúc ngôn ngữ của isset () có thể được sử dụng để phát hiện nếu một biến đã được khởi tạo.isset() language construct can be used to detect if a variable has been already initialized.

Jeff Dot phpnet tại Tanasity Dot Com ¶

12 năm trước

define()2

define()3

define()4

define()5

define()6

define()7

define()8

define()9

REGISTER_*_CONSTANT0

REGISTER_*_CONSTANT1

REGISTER_*_CONSTANT2

Anisgazig tại Gmail Dot Com ¶

1 năm trước

REGISTER_*_CONSTANT3

REGISTER_*_CONSTANT4

REGISTER_*_CONSTANT5

REGISTER_*_CONSTANT6

REGISTER_*_CONSTANT7

REGISTER_*_CONSTANT8

REGISTER_*_CONSTANT9

^[a-zA-Z_\x80-\xff][a-zA-Z0-9_\x80-\xff]*$0

REGISTER_*_CONSTANT2

Anisgazig tại Gmail Dot Com ¶

1 năm trước

^[a-zA-Z_\x80-\xff][a-zA-Z0-9_\x80-\xff]*$2

^[a-zA-Z_\x80-\xff][a-zA-Z0-9_\x80-\xff]*$3

^[a-zA-Z_\x80-\xff][a-zA-Z0-9_\x80-\xff]*$4

^[a-zA-Z_\x80-\xff][a-zA-Z0-9_\x80-\xff]*$5

REGISTER_*_CONSTANT2

Anisgazig tại Gmail Dot Com ¶

1 năm trước

^[a-zA-Z_\x80-\xff][a-zA-Z0-9_\x80-\xff]*$7

^[a-zA-Z_\x80-\xff][a-zA-Z0-9_\x80-\xff]*$3

^[a-zA-Z_\x80-\xff][a-zA-Z0-9_\x80-\xff]*$4

0x80-0xff0

REGISTER_*_CONSTANT2

10 tháng trước

Ẩn danh ¶

0x80-0xff2

0x80-0xff3

5 năm trước

0x80-0xff5

0x80-0xff6

REGISTER_*_CONSTANT2