2015-04-23 13 views
5

Tôi có một rất đơn giản NẾU tuyên bố ...Simple PHP Nếu Bản Tuyên Bố lỗi

if ($key == "listingURL" or 
    $key == "interiorColor" or 
    $key == "engine" or 
    $key == "transmission" or 
    $key == "stockNumber" or 
    $key == "VIN") { 
      // Do thing 
} 

Nhưng Tôi nhận được một lỗi ...

[23-Apr-2015 13:12:01 UTC] PHP Parse error: syntax error, unexpected T_VARIABLE in xxx on line xxx

Đó là dòng này ...

$key == "stockNumber" or 

Có giới hạn đối với số tiền tối đa của OR hoặc tôi thiếu thứ gì đó đang nhìn chằm chằm vào mặt tôi không?

+1

Một gợi ý: Sử dụng in_array hay cái gì khác để kiểm tra giá trị của một biến chống lại nhiều giá trị: $ values ​​= array ('listingURL', 'interiorColor'); if (in_array ($ key, $ values)) {// do stuff – Florian

+1

Hoặc có thể bạn có thể sử dụng || thay cho hoặc –

+0

Sử dụng trình chỉnh sửa. Có một BOM đi lạc trong đó ' '. – mario

Trả lời

20

"Is there a limit to the maximum amount of OR's, or am I missing something staring me right in the face?"

Không có. Lý do là bởi vì bạn có một nhân vật ẩn:

$key == "transmission" or ? <= right there 

enter image description here

Đó là &#65279;

Là một ký tự Unicode ZERO WIDTH NO-BREAK SPACE.

Rewrite:

if ($key == "listingURL" or 
    $key == "interiorColor" or 
    $key == "engine" or 
    $key == "transmission" or 
    $key == "stockNumber" or 
    $key == "VIN") { 
      // Do thing 
} 

Sidenotes:

Kể từ comments:

I'll confirm this as the correct answer as soon as the time limit is up! Thank you so much for the help. I use Sublime Text 3, is there some easy way to detect these hidden characters? – SoWizardly 19 mins ago

Đối Notepad++ có một plugin gọi là: HEX-Editor.

Bạn có thể tải xuống thông qua: Tiện ích mở rộng -> Trình quản lý plugin -> Có sẵn. Chỉ cần kiểm tra hộp combo cho HEX-Editor và nhấp vào cài đặt. Sau đó, bạn có thể thay đổi chế độ xem tệp thành hệ thập lục phân.

Đối với Sublime Text cũng có plugin, thực hiện tương tự.

+1

Tôi sẽ xác nhận đây là câu trả lời đúng ngay khi giới hạn thời gian hết! Cảm ơn bạn rất nhiều vì sự giúp đỡ. Tôi sử dụng Sublime Text 3, có cách nào dễ dàng để phát hiện các ký tự ẩn này không? – SoWizardly

+1

@SoWizardly Vâng, tôi sử dụng Notepad ++ và đã xuất hiện dưới dạng Unicode. Tôi chưa bao giờ sử dụng Sublime, nhưng có lẽ có một tùy chọn xem trong đó. –

+0

Rất thú vị. EDIT: NVM, chỉ cần nhìn thấy bạn sử dụng một trình soạn thảo văn bản khác nhau. Đó có thể chỉ là trường hợp :) – Albzi

2

Khi tôi sao chép trong trình chỉnh sửa khác tôi nhận được điều này xóa nó gần số cổ phiếu?< =

if ($key == "listingURL" or 
    $key == "interiorColor" or 
    $key == "engine" or 
    $key == "transmission" or 
    $key == "stockNumber" or ? <= 
    $key == "VIN") { 
      // Do thing 
} 
0

thử một cái gì đó như thế này

$arr = array("listingURL","interiorColor","engine","transmission","stockNumber","VIN"); 
if(in_array($key, $arr)) 
{ 
    // do something 
} 

này là hiệu quả hơn nhiều cách để thực hiện điều

1

Bản sao bình luận: Một gợi ý: Sử dụng in_array hay cái gì khác để kiểm tra một giá trị của một biến đối với nhiều giá trị:

$values = array('listingURL', 'interiorColor'); 
if (in_array($key, $values)) { //do stuff 
0

Remove ký tự không mong muốn từ $key == "transmission" or ? <=

? <=` This causes the problem