116
Mới! Lưu câu hỏi hoặc câu trả lời và sắp xếp nội dung yêu thích của bạn. Tìm hiểu thêm.
Learn more.
Tôi đang cố gắng kiểm tra xem một $ _POST có tồn tại hay không và nếu có, hãy in nó bên trong một chuỗi khác, nếu không, không in.
một cái gì đó như thế này:
$fromPerson = '+from%3A'.$_POST['fromPerson'];
function fromPerson[] {
if ![$_POST['fromPerson']] {
print ''
} else {
print $fromPerson
};
}
$newString = fromPerson[];
Bất kỳ sự trợ giúp nào đều sẽ là tuyệt vời!
Hỏi ngày 16 tháng 8 năm 2010 lúc 20:15Aug 16, 2010 at 20:15
if[ isset[$_POST['fromPerson']] ]
{
$fromPerson = '+from%3A'.$_POST['fromPerson'];
echo $fromPerson;
}
Đã trả lời ngày 16 tháng 8 năm 2010 lúc 20:29Aug 16, 2010 at 20:29
Ehmadehmadehmad
2.4934 Huy hiệu vàng20 Huy hiệu bạc19 Huy hiệu đồng4 gold badges20 silver badges19 bronze badges
1
Giản dị. Bạn có hai lựa chọn:
1. Kiểm tra xem có bất kỳ dữ liệu bài đăng nào không
//Note: This resolves as true even if all $_POST values are empty strings
if [!empty[$_POST]]
{
// handle post data
$fromPerson = '+from%3A'.$_POST['fromPerson'];
echo $fromPerson;
}
[OR]
2. Chỉ kiểm tra xem một khóa cụ thể có khả dụng trong dữ liệu bài đăng không
if [isset[$_POST['fromPerson']] ]
{
$fromPerson = '+from%3A'.$_POST['fromPerson'];
echo $fromPerson;
}
Molimo
Huy hiệu Bạc 911 Huy hiệu Đồng1 silver badge5 bronze badges
Đã trả lời ngày 6 tháng 10 năm 2014 lúc 18:33Oct 6, 2014 at 18:33
Dheeraj Bhaskardheeraj BhaskarDheeraj Bhaskar
18.1k9 Huy hiệu vàng63 Huy hiệu bạc66 Huy hiệu Đồng9 gold badges63 silver badges66 bronze badges
1
Ngạc nhiên là nó đã không được đề cập
if[$_SERVER['REQUEST_METHOD'] == 'POST' && isset[$_POST['fromPerson']]]{
Đã trả lời ngày 18 tháng 2 năm 2015 lúc 8:45Feb 18, 2015 at 8:45
John Magnoliajohn MagnoliaJohn Magnolia
16.2K33 Huy hiệu vàng154 Huy hiệu bạc261 Huy hiệu Đồng33 gold badges154 silver badges261 bronze badges
5
Mọi người đang nói để sử dụng isset [] - có thể sẽ làm việc cho bạn.
Tuy nhiên, điều quan trọng là bạn phải hiểu sự khác biệt giữa
if[ isset[$_POST['fromPerson']] ]
{
$fromPerson = '+from%3A'.$_POST['fromPerson'];
echo $fromPerson;
}
4 và if[ isset[$_POST['fromPerson']] ]
{
$fromPerson = '+from%3A'.$_POST['fromPerson'];
echo $fromPerson;
}
5if[ isset[$_POST['fromPerson']] ]
{
$fromPerson = '+from%3A'.$_POST['fromPerson'];
echo $fromPerson;
}
6 sẽ trả về if[ isset[$_POST['fromPerson']] ]
{
$fromPerson = '+from%3A'.$_POST['fromPerson'];
echo $fromPerson;
}
7 trong ví dụ đầu tiên, nhưng sẽ trả lại if[ isset[$_POST['fromPerson']] ]
{
$fromPerson = '+from%3A'.$_POST['fromPerson'];
echo $fromPerson;
}
8 trên cái thứ hai mặc dù nếu bạn cố gắng in một trong hai, cả hai sẽ trả về một giá trị trống.Nếu
if[ isset[$_POST['fromPerson']] ]
{
$fromPerson = '+from%3A'.$_POST['fromPerson'];
echo $fromPerson;
}
9 của bạn đến từ một trường/biểu mẫu được đầu vào người dùng và bị bỏ trống, tôi tin rằng [tôi không chắc chắn 100% về điều này] rằng giá trị sẽ là "" nhưng không phải là null.Ngay cả khi giả định đó không chính xác [ai đó xin vui lòng sửa cho tôi nếu tôi sai!] Điều trên vẫn tốt để biết sử dụng trong tương lai.
takrl
6.3483 Huy hiệu vàng59 Huy hiệu bạc67 Huy hiệu Đồng3 gold badges59 silver badges67 bronze badges
Đã trả lời ngày 16 tháng 8 năm 2010 lúc 21:15Aug 16, 2010 at 21:15
RafaelrafaelRafael
3832 Huy hiệu bạc6 Huy hiệu Đồng2 silver badges6 bronze badges
2
isset[$_POST['fromPerson']]
Robert Harvey
175K46 Huy hiệu vàng330 Huy hiệu bạc491 Huy hiệu Đồng46 gold badges330 silver badges491 bronze badges
Đã trả lời ngày 16 tháng 8 năm 2010 lúc 20:16Aug 16, 2010 at 20:16
h3xStreamh3xStreamh3xStream
6.0732 Huy hiệu vàng45 Huy hiệu bạc55 Huy hiệu Đồng2 gold badges45 silver badges55 bronze badges
0
Cách kiểm tra thích hợp nếu khóa mảng có tồn tại là chức năng
//Note: This resolves as true even if all $_POST values are empty strings
if [!empty[$_POST]]
{
// handle post data
$fromPerson = '+from%3A'.$_POST['fromPerson'];
echo $fromPerson;
}
0Sự khác biệt là khi bạn có
//Note: This resolves as true even if all $_POST values are empty strings
if [!empty[$_POST]]
{
// handle post data
$fromPerson = '+from%3A'.$_POST['fromPerson'];
echo $fromPerson;
}
1, điều đó có nghĩa là chính tồn tại và được gửi nhưng giá trị là khôngTùy chọn khác là
//Note: This resolves as true even if all $_POST values are empty strings
if [!empty[$_POST]]
{
// handle post data
$fromPerson = '+from%3A'.$_POST['fromPerson'];
echo $fromPerson;
}
2 sẽ kiểm tra xem phím mảng có tồn tại không và nếu nó được đặtTùy chọn cuối cùng là sử dụng
//Note: This resolves as true even if all $_POST values are empty strings
if [!empty[$_POST]]
{
// handle post data
$fromPerson = '+from%3A'.$_POST['fromPerson'];
echo $fromPerson;
}
3 sẽ kiểm tra xem khóa Array có tồn tại không nếu được đặt và nếu giá trị không được coi là trống.Examples:
$arr = [
'a' => null,
'b' => '',
'c' => 1
];
array_key_exists['a', $arr]; // true
isset[$arr['a']]; // false
empty[$arr['a']]; // true
array_key_exists['b', $arr]; // true
isset[$arr['b']]; // true
empty[$arr['b']]; // true
array_key_exists['c', $arr]; // true
isset[$arr['c']]; // true
empty[$arr['c']]; // false
Liên quan đến câu hỏi của bạn
Cách thích hợp để kiểm tra xem giá trị có được gửi không phải là sử dụng Array_Key_Exists [] với phương thức kiểm tra yêu cầu
if [$_SERVER['REQUEST_METHOD'] == 'POST' && array_key_exists['fromPerson', $_POST]
{
// logic
}
Nhưng có một số trường hợp phụ thuộc vào logic của bạn trong đó
//Note: This resolves as true even if all $_POST values are empty strings
if [!empty[$_POST]]
{
// handle post data
$fromPerson = '+from%3A'.$_POST['fromPerson'];
echo $fromPerson;
}
2 và //Note: This resolves as true even if all $_POST values are empty strings
if [!empty[$_POST]]
{
// handle post data
$fromPerson = '+from%3A'.$_POST['fromPerson'];
echo $fromPerson;
}
3 cũng có thể tốt.Đã trả lời ngày 13 tháng 4 năm 2016 lúc 13:03Apr 13, 2016 at 13:03
RobertrobertRobert
Huy hiệu vàng 19.3k554 Huy hiệu bạc82 Huy hiệu đồng5 gold badges54 silver badges82 bronze badges
1
- Trong trường hợp đó bằng phương pháp
6 không phù hợp.//Note: This resolves as true even if all $_POST values are empty strings if [!empty[$_POST]] { // handle post data $fromPerson = '+from%3A'.$_POST['fromPerson']; echo $fromPerson; }
Theo tài liệu PHP: //php.net/manual/en/function.array-key-exists.php [xem ví dụ #2 mảng .
[see Example #2 array_key_exists[] vs isset[]]
The method
//Note: This resolves as true even if all $_POST values are empty strings
if [!empty[$_POST]]
{
// handle post data
$fromPerson = '+from%3A'.$_POST['fromPerson'];
echo $fromPerson;
}
7 is intended for checking key presence in array.Vì vậy, mã trong câu hỏi có thể được thay đổi như sau:
function fromPerson[] {
if [array_key_exists['fromPerson', $_POST] == FALSE] {
return '';
} else {
return '+from%3A'.$_POST['fromPerson'];
};
}
$newString = fromPerson[];
- Kiểm tra sự hiện diện của mảng $ _POST là không cần thiết vì đó là biến toàn cầu của môi trường PHP kể từ phiên bản 4.1.0 [ngày nay chúng ta không đáp ứng các phiên bản cũ của PHP].
Đã trả lời ngày 19 tháng 7 năm 2012 lúc 10:12Jul 19, 2012 at 10:12
BronekbronekBronek
10,4K2 Huy hiệu vàng43 Huy hiệu bạc46 Huy hiệu đồng2 gold badges43 silver badges46 bronze badges
1
Tất cả các phương pháp thực sự không được khuyến khích, đó là một cảnh báo trong Netbeans 7.4 và chắc chắn là một thực tế tốt để không truy cập trực tiếpfilter instead
$fromPerson = filter_input[INPUT_POST, 'fromPerson', FILTER_DEFAULT];
if[$fromPerson === NULL] { /*$fromPerson is not present*/ }
else{ /*present*/ }
var_dump[$fromPerson];exit[0];
Đã trả lời ngày 5 tháng 12 năm 2013 lúc 8:43Dec 5, 2013 at 8:43
Linaticaticolinuxaticolinuxatico
1.85831 Huy hiệu bạc43 Huy hiệu đồng31 silver badges43 bronze badges
4
Thử
if[ isset[$_POST['fromPerson']] ]
{
$fromPerson = '+from%3A'.$_POST['fromPerson'];
echo $fromPerson;
}
0
người sử dụng
6.27618 Huy hiệu vàng56 Huy hiệu bạc83 Huy hiệu Đồng18 gold badges56 silver badges83 bronze badges
Đã trả lời ngày 2 tháng 9 năm 2013 lúc 17:53Sep 2, 2013 at 17:53
Augustus Francisaugustus FrancisAugustus Francis
2.6924 Huy hiệu vàng20 Huy hiệu bạc32 Huy hiệu Đồng4 gold badges20 silver badges32 bronze badges
3
Thử
//Note: This resolves as true even if all $_POST values are empty strings
if [!empty[$_POST]]
{
// handle post data
$fromPerson = '+from%3A'.$_POST['fromPerson'];
echo $fromPerson;
}
6//Note: This resolves as true even if all $_POST values are empty strings
if [!empty[$_POST]]
{
// handle post data
$fromPerson = '+from%3A'.$_POST['fromPerson'];
echo $fromPerson;
}
9?Đã trả lời ngày 16 tháng 8 năm 2010 lúc 20:17Aug 16, 2010 at 20:17
Stragerstragerstrager
87.5K25 Huy hiệu vàng134 Huy hiệu bạc175 Huy hiệu đồng25 gold badges134 silver badges175 bronze badges
if[ isset[$_POST['fromPerson']] ]
{
$fromPerson = '+from%3A'.$_POST['fromPerson'];
echo $fromPerson;
}
1Đã trả lời ngày 16 tháng 8 năm 2010 lúc 20:25Aug 16, 2010 at 20:25
JEZMCKJEZMCKjezmck
1.0942 Huy hiệu vàng20 Huy hiệu bạc37 Huy hiệu đồng2 gold badges20 silver badges37 bronze badges
2
Tôi muốn thêm câu trả lời của mình mặc dù chủ đề này đã tuổi và nó được xếp hạng cao trong Google cho tôi.
Phương pháp tốt nhất của tôi là thử:
if[ isset[$_POST['fromPerson']] ]
{
$fromPerson = '+from%3A'.$_POST['fromPerson'];
echo $fromPerson;
}
2Vì
if[ isset[$_POST['fromPerson']] ]
{
$fromPerson = '+from%3A'.$_POST['fromPerson'];
echo $fromPerson;
}
9 là một mảng, nếu tập lệnh tải và không có dữ liệu nào trong biến if[ isset[$_POST['fromPerson']] ]
{
$fromPerson = '+from%3A'.$_POST['fromPerson'];
echo $fromPerson;
}
9, nó sẽ có độ dài mảng là 0. Điều này có thể được sử dụng trong câu lệnh IF.Bạn cũng có thể tự hỏi liệu điều này có gây ra lỗi "chỉ mục không xác định" khi thấy như thể chúng tôi đang kiểm tra xem
if[ isset[$_POST['fromPerson']] ]
{
$fromPerson = '+from%3A'.$_POST['fromPerson'];
echo $fromPerson;
}
9 có được đặt không ... thực tế if[ isset[$_POST['fromPerson']] ]
{
$fromPerson = '+from%3A'.$_POST['fromPerson'];
echo $fromPerson;
}
9 luôn tồn tại, lỗi "Chỉ mục không xác định" sẽ chỉ xuất hiện nếu bạn cố gắng tìm kiếm $ _Post giá trị mảng không tồn tại.if[ isset[$_POST['fromPerson']] ]
{
$fromPerson = '+from%3A'.$_POST['fromPerson'];
echo $fromPerson;
}
9 luôn tồn tại trong chính nó là trống hoặc có các giá trị mảng. if [isset[$_POST['fromPerson']] ]
{
$fromPerson = '+from%3A'.$_POST['fromPerson'];
echo $fromPerson;
}
5 có thể không tồn tại, do đó ném lỗi "chỉ mục không xác định".
toshiro92
1.2275 huy hiệu vàng28 Huy hiệu bạc42 Huy hiệu đồng5 gold badges28 silver badges42 bronze badges
Đã trả lời ngày 16 tháng 2 năm 2020 lúc 19:04Feb 16, 2020 at 19:04
if [isset[$_POST['fromPerson']] ]
{
$fromPerson = '+from%3A'.$_POST['fromPerson'];
echo $fromPerson;
}
6 là đúng.Bạn có thể sử dụng một chức năng và trả về, tốt hơn sau đó chỉ đạo Echo.
Đã trả lời ngày 14 tháng 7 năm 2014 lúc 13:07Jul 14, 2014 at 13:07
1
Tôi thích kiểm tra xem nó có phải là người phát hành và nếu nó trống trong một toán tử ternary.
if[ isset[$_POST['fromPerson']] ]
{
$fromPerson = '+from%3A'.$_POST['fromPerson'];
echo $fromPerson;
}
3Đã trả lời ngày 3 tháng 7 năm 2016 lúc 18:15Jul 3, 2016 at 18:15
1