Hướng dẫn loop interview questions in php - câu hỏi phỏng vấn lặp trong php

Câu hỏi phỏng vấn PHP trên các vòng lặp - 6

Câu hỏi 1

(A) 2 (b) 3 (c) 4 (d) 5 2
(B) 3
(C) 4
(D) 5

CompilerLevel: BẮT ĐẦU CAGETORY: LOOPS [Đăng bởi: Admin | Chicago, Hoa Kỳ]
Level: Beginner Category: loops
[Posted by: Admin | Chicago, USA]


Câu hỏi 2

(A) 5 (b) 6 (c) 7 (d) 8 5
(B) 6
(C) 7
(D) 8

CompilerLevel: BẮT ĐẦU CAGETORY: LOOPS [Đăng bởi: Admin | Chicago, Hoa Kỳ]
Level: Beginner Category: loops
[Posted by: Admin | Chicago, USA]


Câu hỏi 2

(A) 5 (b) 6 (c) 7 (d) 8 5
(B) 6
(C) 7
(D) 8

CompilerLevel: BẮT ĐẦU CAGETORY: LOOPS [Đăng bởi: Admin | Chicago, Hoa Kỳ]
Level: Beginner Category: loops
[Posted by: Admin | Chicago, USA]


Câu hỏi 2

(A) 5 (b) 6 (c) 7 (d) 8 5
(B) 6
(C) 7
(D) 8

CompilerLevel: BẮT ĐẦU CAGETORY: LOOPS [Đăng bởi: Admin | Chicago, Hoa Kỳ]
Level: Beginner Category: loops
[Posted by: Admin | Chicago, USA]


Câu hỏi 2

(A) 5 (b) 6 (c) 7 (d) 8 01234
(B) 012345
(C) 24
(D) 024

CompilerLevel: BẮT ĐẦU CAGETORY: LOOPS [Đăng bởi: Admin | Chicago, Hoa Kỳ]
Level: Beginner Category: loops
[Posted by: Admin | Chicago, USA]


Câu hỏi 2

(A) 5 (b) 6 (c) 7 (d) 8 0 Odd . 1 Even . 2 Odd . 3 Even . 4 Odd . 5 Even . 6 Odd . 7 Even . 8 Odd . 9 Even .
(B) 0 Even . 1 Odd . 2 Even . 3 Odd . 4 Even . 6 Even . 7 Odd . 8 Even . 9 Odd . 10 Even .
(C) 0 Even . 1 Odd . 2 Even . 3 Odd . 4 Even . 5 Odd . 6 Even . 7 Odd . 8 Even . 9 Odd . 10 Even .
(D) 0 Error. 1 Odd . 2 Even . 3 Odd . 4 Even . 5 Odd . 6 Even . 7 Odd . 8 Even . 9 Odd ..

Câu hỏi: 3
Level: Beginner Category: loops
[Posted by: KWED | Lagos Nigeria]


Lớp hướng dẫn (hướng dẫnclass.com) là một cửa hàng dừng để tìm hiểu trực tuyến về các công nghệ web khác nhau, chuẩn bị cho một cuộc phỏng vấn và tăng cường các kỹ năng kỹ thuật của bạn.

Chúng tôi cung cấp các hướng dẫn trực tuyến miễn phí về các công nghệ web mới nhất. Những hướng dẫn này có cấu trúc tốt và dễ sử dụng cho người mới bắt đầu. Với mỗi hướng dẫn, bạn có thể tìm thấy một danh sách các bài tập, bài tập, mã, bài viết và câu hỏi phỏng vấn liên quan.

Trang web này cung cấp các hướng dẫn về PHP, HTML, CSS, SEO, C, C ++, JavaScript, WordPress và tiếp thị kỹ thuật số cho người mới bắt đầu. Bắt đầu học ngay bây giờ.

Câu hỏi phỏng vấn

Sự khác biệt giữa

$x = 5;
echo $x;
echo "
"; echo $x+++$x++; echo "
"; echo $x; echo "
"; echo $x---$x--; echo "
"; echo $x;
4 và
$x = 5;
echo $x;
echo "
"; echo $x+++$x++; echo "
"; echo $x; echo "
"; echo $x---$x--; echo "
"; echo $x;
5 trong PHP là gì?

$x = 5;
echo $x;
echo "
"; echo $x+++$x++; echo "
"; echo $x; echo "
"; echo $x---$x--; echo "
"; echo $x;
4 và
$x = 5;
echo $x;
echo "
"; echo $x+++$x++; echo "
"; echo $x; echo "
"; echo $x---$x--; echo "
"; echo $x;
5 phần lớn giống nhau trong PHP. Cả hai đều được sử dụng để xuất dữ liệu vào màn hình.

Sự khác biệt duy nhất như sau:

  1. $x = 5;
    echo $x;
    echo "
    "; echo $x+++$x++; echo "
    "; echo $x; echo "
    "; echo $x---$x--; echo "
    "; echo $x;
    4 không trả về giá trị trong khi
    $x = 5;
    echo $x;
    echo "
    "; echo $x+++$x++; echo "
    "; echo $x; echo "
    "; echo $x---$x--; echo "
    "; echo $x;
    5 trả về giá trị 1 (điều này cho phép
    $x = 5;
    echo $x;
    echo "
    "; echo $x+++$x++; echo "
    "; echo $x; echo "
    "; echo $x---$x--; echo "
    "; echo $x;
    5 được sử dụng trong các biểu thức).
  2. $x = 5;
    echo $x;
    echo "
    "; echo $x+++$x++; echo "
    "; echo $x; echo "
    "; echo $x---$x--; echo "
    "; echo $x;
    4 có thể chấp nhận nhiều tham số (mặc dù việc sử dụng như vậy là rất hiếm) trong khi in chỉ có thể lấy một đối số.

Đầu ra mã này sẽ là gì và tại sao?

$x = true and false;
var_dump($x);

Đáng ngạc nhiên với nhiều người, mã trên sẽ xuất ra

5
11
7
1
5
2 dường như ngụ ý rằng toán tử
5
11
7
1
5
3 đang hoạt động thay vào đó là một
5
11
7
1
5
4.

Vấn đề ở đây là toán tử

5
11
7
1
5
5 được ưu tiên hơn nhà điều hành
5
11
7
1
5
3 theo thứ tự hoạt động, do đó, tuyên bố
5
11
7
1
5
7 cuối cùng có chức năng tương đương với:

$x = true;       // sets $x equal to true
true and false;  // results in false, but has no affect on anything

Đây là một ví dụ tuyệt vời về lý do tại sao sử dụng dấu ngoặc đơn để xác định rõ ràng ý định của bạn nói chung là một thực tế tốt, trong bất kỳ ngôn ngữ nào. Ví dụ: nếu câu lệnh trên

5
11
7
1
5
7 được thay thế bằng
5
11
7
1
5
9, thì
$a = '1';
$b = &$a;
$b = "2$b";
0 sẽ được đặt thành
$a = '1';
$b = &$a;
$b = "2$b";
1 như mong đợi.

Điều gì sẽ là đầu ra của mã bên dưới và tại sao?

$x = 5;
echo $x;
echo "
"; echo $x+++$x++; echo "
"; echo $x; echo "
"; echo $x---$x--; echo "
"; echo $x;

Đầu ra sẽ như sau:

5
11
7
1
5

Đây là hai sự thật quan trọng giải thích tại sao:

  1. Thuật ngữ
    $a = '1';
    $b = &$a;
    $b = "2$b";
    
    2 cho biết sử dụng giá trị hiện tại của
    $a = '1';
    $b = &$a;
    $b = "2$b";
    
    0 và sau đó tăng nó. Tương tự, thuật ngữ
    $a = '1';
    $b = &$a;
    $b = "2$b";
    
    4 cho biết sử dụng giá trị hiện tại của
    $a = '1';
    $b = &$a;
    $b = "2$b";
    
    0 và sau đó giảm nó.
  2. Toán tử gia tăng (
    $a = '1';
    $b = &$a;
    $b = "2$b";
    
    6) có quyền ưu tiên cao hơn sau đó là toán tử tổng (
    $a = '1';
    $b = &$a;
    $b = "2$b";
    
    7) theo thứ tự hoạt động.

Với những điểm này trong tâm trí, chúng ta có thể hiểu rằng

$a = '1';
$b = &$a;
$b = "2$b";
8 được đánh giá như sau: Tham chiếu đầu tiên đến
$a = '1';
$b = &$a;
$b = "2$b";
0 là khi giá trị của nó vẫn là 5 (tức là, trước khi nó được tăng lên) và tham chiếu thứ hai đến
$a = '1';
$b = &$a;
$b = "2$b";
0 sau đó là khi giá trị của nó là 6 ( tức là, trước khi nó được tăng lên), do đó, hoạt động là
var_dump(0123 == 123);
var_dump('0123' == 123);
var_dump('0123' === 123);
1 mang lại 11. Sau khi hoạt động này, giá trị của
$a = '1';
$b = &$a;
$b = "2$b";
0 là 7 kể từ khi nó được tăng hai lần.

Tương tự, chúng ta có thể hiểu rằng

var_dump(0123 == 123);
var_dump('0123' == 123);
var_dump('0123' === 123);
3 được đánh giá như sau: tham chiếu đầu tiên đến
$a = '1';
$b = &$a;
$b = "2$b";
0 là khi giá trị của nó vẫn là 7 (tức là, trước khi nó bị giảm) và tham chiếu thứ hai đến
$a = '1';
$b = &$a;
$b = "2$b";
0 là khi giá trị của nó là 6 (tức là trước khi nó một lần nữa bị giảm), vì vậy hoạt động là
var_dump(0123 == 123);
var_dump('0123' == 123);
var_dump('0123' === 123);
6 mang lại 1. Sau hoạt động này, giá trị của
$a = '1';
$b = &$a;
$b = "2$b";
0 đã trở lại giá trị ban đầu là 5, vì nó đã được tăng hai lần và sau đó giảm hai lần.

Các giá trị của

var_dump(0123 == 123);
var_dump('0123' == 123);
var_dump('0123' === 123);
8 và
var_dump(0123 == 123);
var_dump('0123' == 123);
var_dump('0123' === 123);
9 sẽ là gì sau khi mã bên dưới được thực thi? Giải thich câu trả lơi của bạn.

$a = '1';
$b = &$a;
$b = "2$b";

Cả

var_dump(0123 == 123);
var_dump('0123' == 123);
var_dump('0123' === 123);
8 và
var_dump(0123 == 123);
var_dump('0123' == 123);
var_dump('0123' === 123);
9 sẽ bằng với chuỗi
$referenceTable = array();
$referenceTable['val1'] = array(1, 2);
$referenceTable['val2'] = 3;
$referenceTable['val3'] = array(4, 5);

$testArray = array();

$testArray = array_merge($testArray, $referenceTable['val1']);
var_dump($testArray);
$testArray = array_merge($testArray, $referenceTable['val2']);
var_dump($testArray);
$testArray = array_merge($testArray, $referenceTable['val3']);
var_dump($testArray);
2 sau khi mã trên được thực thi.

Đây là lý do tại sao:

Tuyên bố

$referenceTable = array();
$referenceTable['val1'] = array(1, 2);
$referenceTable['val2'] = 3;
$referenceTable['val3'] = array(4, 5);

$testArray = array();

$testArray = array_merge($testArray, $referenceTable['val1']);
var_dump($testArray);
$testArray = array_merge($testArray, $referenceTable['val2']);
var_dump($testArray);
$testArray = array_merge($testArray, $referenceTable['val3']);
var_dump($testArray);
3 đặt
var_dump(0123 == 123);
var_dump('0123' == 123);
var_dump('0123' === 123);
9 bằng với tham chiếu đến
var_dump(0123 == 123);
var_dump('0123' == 123);
var_dump('0123' === 123);
8 (trái ngược với cài đặt
var_dump(0123 == 123);
var_dump('0123' == 123);
var_dump('0123' === 123);
9 với giá trị hiện tại của
var_dump(0123 == 123);
var_dump('0123' == 123);
var_dump('0123' === 123);
8). Sau đó, miễn là
var_dump(0123 == 123);
var_dump('0123' == 123);
var_dump('0123' === 123);
9 vẫn là một tham chiếu đến
var_dump(0123 == 123);
var_dump('0123' == 123);
var_dump('0123' === 123);
8, bất cứ điều gì được thực hiện cho
var_dump(0123 == 123);
var_dump('0123' == 123);
var_dump('0123' === 123);
8 sẽ ảnh hưởng đến
var_dump(0123 == 123);
var_dump('0123' == 123);
var_dump('0123' === 123);
9 và ngược lại.

Vì vậy, khi chúng tôi sau đó thực thi câu lệnh

array(2) { [0]=> int(1) [1]=> int(2) }
NULL
NULL
2,
var_dump(0123 == 123);
var_dump('0123' == 123);
var_dump('0123' === 123);
9 được đặt bằng chuỗi
array(2) { [0]=> int(1) [1]=> int(2) }
NULL
NULL
4 theo sau là giá trị hiện tại của
var_dump(0123 == 123);
var_dump('0123' == 123);
var_dump('0123' === 123);
9 (giống như
var_dump(0123 == 123);
var_dump('0123' == 123);
var_dump('0123' === 123);
8) (tức là, sự kết hợp của
array(2) { [0]=> int(1) [1]=> int(2) }
NULL
NULL
4 và
Warning: array_merge(): Argument #2 is not an array
Warning: array_merge(): Argument #1 is not an array
1). Và, vì
var_dump(0123 == 123);
var_dump('0123' == 123);
var_dump('0123' === 123);
9 là một tham chiếu đến
var_dump(0123 == 123);
var_dump('0123' == 123);
var_dump('0123' === 123);
8, điều này có ảnh hưởng tương tự đến giá trị của
var_dump(0123 == 123);
var_dump('0123' == 123);
var_dump('0123' === 123);
8, do đó cả hai kết thúc bằng
$referenceTable = array();
$referenceTable['val1'] = array(1, 2);
$referenceTable['val2'] = 3;
$referenceTable['val3'] = array(4, 5);

$testArray = array();

$testArray = array_merge($testArray, $referenceTable['val1']);
var_dump($testArray);
$testArray = array_merge($testArray, $referenceTable['val2']);
var_dump($testArray);
$testArray = array_merge($testArray, $referenceTable['val3']);
var_dump($testArray);
2.

Điều gì sẽ là đầu ra của mỗi câu dưới đây và tại sao?

var_dump(0123 == 123);
var_dump('0123' == 123);
var_dump('0123' === 123);

Warning: array_merge(): Argument #2 is not an array
Warning: array_merge(): Argument #1 is not an array
6 sẽ xuất ra
Warning: array_merge(): Argument #2 is not an array
Warning: array_merge(): Argument #1 is not an array
7 vì
Warning: array_merge(): Argument #2 is not an array
Warning: array_merge(): Argument #1 is not an array
8 hàng đầu trong
Warning: array_merge(): Argument #2 is not an array
Warning: array_merge(): Argument #1 is not an array
9 cho biết thông dịch PHP coi giá trị là giá trị octal (thay vì thập phân) và 123 octal bằng 83 thập phân, do đó các giá trị không bằng nhau.

$testArray = array_merge($testArray, (array)$referenceTable['val1']);
var_dump($testArray);
$testArray = array_merge($testArray, (array)$referenceTable['val2']);
var_dump($testArray);
$testArray = array_merge($testArray, (array)$referenceTable['val3']);
var_dump($testArray);
0 sẽ xuất ra
5
11
7
1
5
2 vì chuỗi
Warning: array_merge(): Argument #2 is not an array
Warning: array_merge(): Argument #1 is not an array
9 sẽ tự động bị ép buộc vào một số nguyên khi được so sánh với giá trị số nguyên. Thật thú vị, khi chuyển đổi này được thực hiện,
Warning: array_merge(): Argument #2 is not an array
Warning: array_merge(): Argument #1 is not an array
8 hàng đầu bị bỏ qua và giá trị được coi là giá trị thập phân (chứ không phải octal), do đó các giá trị bị làm phiền 123 (thập phân) và do đó bằng nhau.

$testArray = array_merge($testArray, (array)$referenceTable['val1']);
var_dump($testArray);
$testArray = array_merge($testArray, (array)$referenceTable['val2']);
var_dump($testArray);
$testArray = array_merge($testArray, (array)$referenceTable['val3']);
var_dump($testArray);
4 đầu ra
Warning: array_merge(): Argument #2 is not an array
Warning: array_merge(): Argument #1 is not an array
7 Vì nó thực hiện so sánh nghiêm ngặt hơn và không thực hiện sự ép buộc loại tự động của chuỗi với số nguyên.

Vấn đề với mã dưới đây là gì? Nó sẽ đầu ra cái gì? Làm thế nào nó có thể được cố định?

$referenceTable = array();
$referenceTable['val1'] = array(1, 2);
$referenceTable['val2'] = 3;
$referenceTable['val3'] = array(4, 5);

$testArray = array();

$testArray = array_merge($testArray, $referenceTable['val1']);
var_dump($testArray);
$testArray = array_merge($testArray, $referenceTable['val2']);
var_dump($testArray);
$testArray = array_merge($testArray, $referenceTable['val3']);
var_dump($testArray);

Đầu ra sẽ như sau:

array(2) { [0]=> int(1) [1]=> int(2) }
NULL
NULL

Bạn cũng có thể thấy hai cảnh báo được tạo ra, tương tự như sau:

Warning: array_merge(): Argument #2 is not an array
Warning: array_merge(): Argument #1 is not an array

Vấn đề ở đây là, nếu đối số thứ nhất hoặc thứ hai cho

$testArray = array_merge($testArray, (array)$referenceTable['val1']);
var_dump($testArray);
$testArray = array_merge($testArray, (array)$referenceTable['val2']);
var_dump($testArray);
$testArray = array_merge($testArray, (array)$referenceTable['val3']);
var_dump($testArray);
6 không phải là một mảng, giá trị trả về sẽ là
$testArray = array_merge($testArray, (array)$referenceTable['val1']);
var_dump($testArray);
$testArray = array_merge($testArray, (array)$referenceTable['val2']);
var_dump($testArray);
$testArray = array_merge($testArray, (array)$referenceTable['val3']);
var_dump($testArray);
7. Ví dụ, mặc dù người ta có thể mong đợi một cách hợp lý rằng một cuộc gọi như
$testArray = array_merge($testArray, (array)$referenceTable['val1']);
var_dump($testArray);
$testArray = array_merge($testArray, (array)$referenceTable['val2']);
var_dump($testArray);
$testArray = array_merge($testArray, (array)$referenceTable['val3']);
var_dump($testArray);
8 sẽ chỉ trả lại
$testArray = array_merge($testArray, (array)$referenceTable['val1']);
var_dump($testArray);
$testArray = array_merge($testArray, (array)$referenceTable['val2']);
var_dump($testArray);
$testArray = array_merge($testArray, (array)$referenceTable['val3']);
var_dump($testArray);
9, nhưng thay vào đó, nó trả về
$testArray = array_merge($testArray, (array)$referenceTable['val1']);
var_dump($testArray);
$testArray = array_merge($testArray, (array)$referenceTable['val2']);
var_dump($testArray);
$testArray = array_merge($testArray, (array)$referenceTable['val3']);
var_dump($testArray);
7! (Và để làm cho vấn đề tồi tệ hơn, điều này không được ghi nhận tốt trong tài liệu PHP.)

Do đó, cuộc gọi đến

$x = true;       // sets $x equal to true
true and false;  // results in false, but has no affect on anything
01 đánh giá thành
$x = true;       // sets $x equal to true
true and false;  // results in false, but has no affect on anything
02 và, vì
$x = true;       // sets $x equal to true
true and false;  // results in false, but has no affect on anything
03 không thuộc loại
$x = true;       // sets $x equal to true
true and false;  // results in false, but has no affect on anything
04, cuộc gọi này đến
$testArray = array_merge($testArray, (array)$referenceTable['val1']);
var_dump($testArray);
$testArray = array_merge($testArray, (array)$referenceTable['val2']);
var_dump($testArray);
$testArray = array_merge($testArray, (array)$referenceTable['val3']);
var_dump($testArray);
6 trả về
$testArray = array_merge($testArray, (array)$referenceTable['val1']);
var_dump($testArray);
$testArray = array_merge($testArray, (array)$referenceTable['val2']);
var_dump($testArray);
$testArray = array_merge($testArray, (array)$referenceTable['val3']);
var_dump($testArray);
7, lần lượt kết thúc cài đặt
$x = true;       // sets $x equal to true
true and false;  // results in false, but has no affect on anything
07 bằng
$testArray = array_merge($testArray, (array)$referenceTable['val1']);
var_dump($testArray);
$testArray = array_merge($testArray, (array)$referenceTable['val2']);
var_dump($testArray);
$testArray = array_merge($testArray, (array)$referenceTable['val3']);
var_dump($testArray);
7. Sau đó, khi chúng tôi nhận được cuộc gọi tiếp theo đến
$testArray = array_merge($testArray, (array)$referenceTable['val1']);
var_dump($testArray);
$testArray = array_merge($testArray, (array)$referenceTable['val2']);
var_dump($testArray);
$testArray = array_merge($testArray, (array)$referenceTable['val3']);
var_dump($testArray);
6,
$x = true;       // sets $x equal to true
true and false;  // results in false, but has no affect on anything
07 hiện là
$testArray = array_merge($testArray, (array)$referenceTable['val1']);
var_dump($testArray);
$testArray = array_merge($testArray, (array)$referenceTable['val2']);
var_dump($testArray);
$testArray = array_merge($testArray, (array)$referenceTable['val3']);
var_dump($testArray);
7 vì vậy
$testArray = array_merge($testArray, (array)$referenceTable['val1']);
var_dump($testArray);
$testArray = array_merge($testArray, (array)$referenceTable['val2']);
var_dump($testArray);
$testArray = array_merge($testArray, (array)$referenceTable['val3']);
var_dump($testArray);
6 lại trả về
$testArray = array_merge($testArray, (array)$referenceTable['val1']);
var_dump($testArray);
$testArray = array_merge($testArray, (array)$referenceTable['val2']);
var_dump($testArray);
$testArray = array_merge($testArray, (array)$referenceTable['val3']);
var_dump($testArray);
7. (Điều này cũng giải thích lý do tại sao cảnh báo đầu tiên phàn nàn về đối số số 2 và cảnh báo thứ hai phàn nàn về đối số số 1.)

Việc sửa chữa cho điều này là đơn giản. Nếu chúng ta chỉ đơn giản là đánh máy đối số thứ hai cho

$x = true;       // sets $x equal to true
true and false;  // results in false, but has no affect on anything
04, chúng ta sẽ nhận được kết quả mong muốn. Do đó, các cuộc gọi
$testArray = array_merge($testArray, (array)$referenceTable['val1']);
var_dump($testArray);
$testArray = array_merge($testArray, (array)$referenceTable['val2']);
var_dump($testArray);
$testArray = array_merge($testArray, (array)$referenceTable['val3']);
var_dump($testArray);
6 đã sửa lại như sau:

$testArray = array_merge($testArray, (array)$referenceTable['val1']);
var_dump($testArray);
$testArray = array_merge($testArray, (array)$referenceTable['val2']);
var_dump($testArray);
$testArray = array_merge($testArray, (array)$referenceTable['val3']);
var_dump($testArray);

sẽ mang lại đầu ra sau (và không có cảnh báo):

$x = true;       // sets $x equal to true
true and false;  // results in false, but has no affect on anything
0

$a = '1';
$b = &$a;
$b = "2$b";
0 sẽ bằng gì sau tuyên bố
$x = true;       // sets $x equal to true
true and false;  // results in false, but has no affect on anything
17?

Câu trả lời đúng là 18.

Đây là lý do tại sao:

Tuyên bố

$referenceTable = array();
$referenceTable['val1'] = array(1, 2);
$referenceTable['val2'] = 3;
$referenceTable['val3'] = array(4, 5);

$testArray = array();

$testArray = array_merge($testArray, $referenceTable['val1']);
var_dump($testArray);
$testArray = array_merge($testArray, $referenceTable['val2']);
var_dump($testArray);
$testArray = array_merge($testArray, $referenceTable['val3']);
var_dump($testArray);
3 đặt
var_dump(0123 == 123);
var_dump('0123' == 123);
var_dump('0123' === 123);
9 bằng với tham chiếu đến
var_dump(0123 == 123);
var_dump('0123' == 123);
var_dump('0123' === 123);
8 (trái ngược với cài đặt
var_dump(0123 == 123);
var_dump('0123' == 123);
var_dump('0123' === 123);
9 với giá trị hiện tại của
var_dump(0123 == 123);
var_dump('0123' == 123);
var_dump('0123' === 123);
8). Sau đó, miễn là
var_dump(0123 == 123);
var_dump('0123' == 123);
var_dump('0123' === 123);
9 vẫn là một tham chiếu đến
var_dump(0123 == 123);
var_dump('0123' == 123);
var_dump('0123' === 123);
8, bất cứ điều gì được thực hiện cho
var_dump(0123 == 123);
var_dump('0123' == 123);
var_dump('0123' === 123);
8 sẽ ảnh hưởng đến
var_dump(0123 == 123);
var_dump('0123' == 123);
var_dump('0123' === 123);
9 và ngược lại.

Vì vậy, khi chúng tôi sau đó thực thi câu lệnh

array(2) { [0]=> int(1) [1]=> int(2) }
NULL
NULL
2,
var_dump(0123 == 123);
var_dump('0123' == 123);
var_dump('0123' === 123);
9 được đặt bằng chuỗi
array(2) { [0]=> int(1) [1]=> int(2) }
NULL
NULL
4 theo sau là giá trị hiện tại của
var_dump(0123 == 123);
var_dump('0123' == 123);
var_dump('0123' === 123);
9 (giống như
var_dump(0123 == 123);
var_dump('0123' == 123);
var_dump('0123' === 123);
8) (tức là, sự kết hợp của
array(2) { [0]=> int(1) [1]=> int(2) }
NULL
NULL
4 và
Warning: array_merge(): Argument #2 is not an array
Warning: array_merge(): Argument #1 is not an array
1). Và, vì
var_dump(0123 == 123);
var_dump('0123' == 123);
var_dump('0123' === 123);
9 là một tham chiếu đến
var_dump(0123 == 123);
var_dump('0123' == 123);
var_dump('0123' === 123);
8, điều này có ảnh hưởng tương tự đến giá trị của
var_dump(0123 == 123);
var_dump('0123' == 123);
var_dump('0123' === 123);
8, do đó cả hai kết thúc bằng
$referenceTable = array();
$referenceTable['val1'] = array(1, 2);
$referenceTable['val2'] = 3;
$referenceTable['val3'] = array(4, 5);

$testArray = array();

$testArray = array_merge($testArray, $referenceTable['val1']);
var_dump($testArray);
$testArray = array_merge($testArray, $referenceTable['val2']);
var_dump($testArray);
$testArray = array_merge($testArray, $referenceTable['val3']);
var_dump($testArray);
2.

Điều gì sẽ là đầu ra của mỗi câu dưới đây và tại sao?

Warning: array_merge(): Argument #2 is not an array
Warning: array_merge(): Argument #1 is not an array
6 sẽ xuất ra
Warning: array_merge(): Argument #2 is not an array
Warning: array_merge(): Argument #1 is not an array
7 vì
Warning: array_merge(): Argument #2 is not an array
Warning: array_merge(): Argument #1 is not an array
8 hàng đầu trong
Warning: array_merge(): Argument #2 is not an array
Warning: array_merge(): Argument #1 is not an array
9 cho biết thông dịch PHP coi giá trị là giá trị octal (thay vì thập phân) và 123 octal bằng 83 thập phân, do đó các giá trị không bằng nhau.

$testArray = array_merge($testArray, (array)$referenceTable['val1']);
var_dump($testArray);
$testArray = array_merge($testArray, (array)$referenceTable['val2']);
var_dump($testArray);
$testArray = array_merge($testArray, (array)$referenceTable['val3']);
var_dump($testArray);
0 sẽ xuất ra
5
11
7
1
5
2 vì chuỗi
Warning: array_merge(): Argument #2 is not an array
Warning: array_merge(): Argument #1 is not an array
9 sẽ tự động bị ép buộc vào một số nguyên khi được so sánh với giá trị số nguyên. Thật thú vị, khi chuyển đổi này được thực hiện,
Warning: array_merge(): Argument #2 is not an array
Warning: array_merge(): Argument #1 is not an array
8 hàng đầu bị bỏ qua và giá trị được coi là giá trị thập phân (chứ không phải octal), do đó các giá trị bị làm phiền 123 (thập phân) và do đó bằng nhau.

$x = true;       // sets $x equal to true
true and false;  // results in false, but has no affect on anything
1

$testArray = array_merge($testArray, (array)$referenceTable['val1']);
var_dump($testArray);
$testArray = array_merge($testArray, (array)$referenceTable['val2']);
var_dump($testArray);
$testArray = array_merge($testArray, (array)$referenceTable['val3']);
var_dump($testArray);
4 đầu ra
Warning: array_merge(): Argument #2 is not an array
Warning: array_merge(): Argument #1 is not an array
7 Vì nó thực hiện so sánh nghiêm ngặt hơn và không thực hiện sự ép buộc loại tự động của chuỗi với số nguyên.John D” (i.e., “John”, followed by six spaces, followed by “D”) and
$x = true;       // sets $x equal to true
true and false;  // results in false, but has no affect on anything
22 will return 11.

Vấn đề với mã dưới đây là gì? Nó sẽ đầu ra cái gì? Làm thế nào nó có thể được cố định?

Đầu ra sẽ như sau:

Thứ hai,

$x = true;       // sets $x equal to true
true and false;  // results in false, but has no affect on anything
27 nói rằng đặt ký tự thứ 11 của chuỗi (hãy nhớ rằng các chỉ số dựa trên 0) thành
$x = true;       // sets $x equal to true
true and false;  // results in false, but has no affect on anything
28. Tuy nhiên, trước tuyên bố đó, độ dài của chuỗi
$x = true;       // sets $x equal to true
true and false;  // results in false, but has no affect on anything
21 (
$x = true;       // sets $x equal to true
true and false;  // results in false, but has no affect on anything
33) chỉ là năm. Trong khi các trình biên dịch hoặc phiên dịch bằng các ngôn ngữ khác có thể Barf (với một cái gì đó gần giống với lỗi ngoài chỉ số) khi bạn cố gắng đặt ký tự thứ 11 của chuỗi năm ký tự, thay vào đó PHP rất thích hợp và thay vào đó Điều này và đặt tất cả các ký tự trung gian thành chỗ trống.

$x = true;       // sets $x equal to true
true and false;  // results in false, but has no affect on anything
34 là hằng số PHP tương ứng với giá trị số nguyên được hỗ trợ lớn nhất (giá trị dựa trên phiên bản PHP đang được chạy và nền tảng mà nó đang chạy).

Giả sử rằng

$x = true;       // sets $x equal to true
true and false;  // results in false, but has no affect on anything
35 sẽ mang lại
$x = true;       // sets $x equal to true
true and false;  // results in false, but has no affect on anything
36.

Trong trường hợp đó, kết quả của

$x = true;       // sets $x equal to true
true and false;  // results in false, but has no affect on anything
37 là gì? Ngoài ra, kết quả của
$x = true;       // sets $x equal to true
true and false;  // results in false, but has no affect on anything
38 sẽ là gì?

Lưu ý: Nó không quan trọng để cung cấp giá trị chính xác khi trả lời câu hỏi, mà là để giải thích điều gì sẽ xảy ra và tại sao. It’s not important to supply the exact value when answering the question, but rather to explain what will happen and why.

Kết quả của

$x = true;       // sets $x equal to true
true and false;  // results in false, but has no affect on anything
37 sẽ được hiển thị dưới dạng gấp đôi (trong trường hợp của ví dụ cụ thể này, nó sẽ hiển thị
$x = true;       // sets $x equal to true
true and false;  // results in false, but has no affect on anything
40). Chìa khóa ở đây là để ứng cử viên biết rằng PHP xử lý các số nguyên lớn bằng cách chuyển đổi chúng thành nhân đôi (có thể lưu trữ các giá trị lớn hơn).

Và thật thú vị, kết quả của

$x = true;       // sets $x equal to true
true and false;  // results in false, but has no affect on anything
38 sẽ được hiển thị dưới dạng số âm (trong trường hợp của ví dụ cụ thể này, nó sẽ hiển thị
$x = true;       // sets $x equal to true
true and false;  // results in false, but has no affect on anything
42). Một lần nữa, chìa khóa ở đây là để ứng viên biết rằng giá trị sẽ được hiển thị dưới dạng số âm, không biết giá trị chính xác.

Mã theo sau vang vọng gì?

$x = true;       // sets $x equal to true
true and false;  // results in false, but has no affect on anything
2

Số

array(2) { [0]=> int(1) [1]=> int(2) }
NULL
NULL
7.

Lưu ý, trong Php 7.2, điều này đưa ra cảnh báo rằng giá trị không phải là số lượng trên dòng và không thực hiện chuyển đổi sang

$x = true;       // sets $x equal to true
true and false;  // results in false, but has no affect on anything
44, do đó, nó lặp lại
$x = true;       // sets $x equal to true
true and false;  // results in false, but has no affect on anything
45.

Làm thế nào bạn sẽ sắp xếp một loạt các chuỗi theo thứ tự không phân biệt trường hợp tự nhiên của họ, trong khi duy trì liên kết chỉ số ban đầu của họ?

Ví dụ: mảng sau:

$x = true;       // sets $x equal to true
true and false;  // results in false, but has no affect on anything
3

Sau khi phân loại, nên trở thành:

$x = true;       // sets $x equal to true
true and false;  // results in false, but has no affect on anything
4

Bí quyết để giải quyết vấn đề này là sử dụng ba lá cờ đặc biệt với chức năng thư viện

$x = true;       // sets $x equal to true
true and false;  // results in false, but has no affect on anything
46 tiêu chuẩn:

$x = true;       // sets $x equal to true
true and false;  // results in false, but has no affect on anything
5

Hàm

$x = true;       // sets $x equal to true
true and false;  // results in false, but has no affect on anything
46 là một biến thể của hàm tiêu chuẩn
$x = true;       // sets $x equal to true
true and false;  // results in false, but has no affect on anything
48 bảo tồn liên kết chỉ số. Ba lá cờ được sử dụng ở trên
$x = true;       // sets $x equal to true
true and false;  // results in false, but has no affect on anything
49,
$x = true;       // sets $x equal to true
true and false;  // results in false, but has no affect on anything
50 và
$x = true;       // sets $x equal to true
true and false;  // results in false, but has no affect on anything
51 buộc chức năng sắp xếp coi các vật phẩm là chuỗi, sắp xếp theo cách không phân biệt trường hợp và duy trì trật tự tự nhiên tương ứng.

Lưu ý: Sử dụng hàm

$x = true;       // sets $x equal to true
true and false;  // results in false, but has no affect on anything
52 sẽ không phải là một câu trả lời đúng, vì nó sẽ không duy trì liên kết chỉ mục ban đầu của các phần tử của mảng. Using the
$x = true;       // sets $x equal to true
true and false;  // results in false, but has no affect on anything
52 function would not be a correct answer, since it would not maintain the original index association of the elements of the array.

Đặc điểm là một cơ chế cung cấp một số lợi thế tái sử dụng của nhiều di truyền trong các ngôn ngữ như PHP nơi không được hỗ trợ nhiều kế thừa. Đặc điểm cho phép các nhà phát triển sử dụng lại kết hợp các phương pháp từ các phân cấp lớp khác nhau.

PEAR (Khoản mở rộng PHP và Kho lưu trữ ứng dụng) là một khung và kho lưu trữ cho các thành phần PHP có thể tái sử dụng. PEAR là một kho lưu trữ mã chứa tất cả các loại đoạn mã và thư viện mã PHP.PHP Extension and Application Repository) is a framework and repository for reusable PHP components. PEAR is a code repository containing all kinds of php code snippets and libraries.

Pear cũng cung cấp giao diện dòng lệnh có thể được sử dụng để tự động cài đặt các gói.

Việc sử dụng hàm

$x = true;       // sets $x equal to true
true and false;  // results in false, but has no affect on anything
53 trong PHP là gì?

  1. $x = true;       // sets $x equal to true
    true and false;  // results in false, but has no affect on anything
    
    53 được sử dụng để chuyển hướng từ trang này sang trang khác:
    $x = true;       // sets $x equal to true
    true and false;  // results in false, but has no affect on anything
    
    55
  2. $x = true;       // sets $x equal to true
    true and false;  // results in false, but has no affect on anything
    
    53 được sử dụng để gửi mã trạng thái HTTP:
    $x = true;       // sets $x equal to true
    true and false;  // results in false, but has no affect on anything
    
    57
  3. $x = true;       // sets $x equal to true
    true and false;  // results in false, but has no affect on anything
    
    53 được sử dụng để gửi tiêu đề HTTP thô:
    $x = true;       // sets $x equal to true
    true and false;  // results in false, but has no affect on anything
    
    59

Xem xét mã sau:

$x = true;       // sets $x equal to true
true and false;  // results in false, but has no affect on anything
6

Giá trị của

$a = '1';
$b = &$a;
$b = "2$b";
0 sau khi mã này thực thi là gì? Giải thich câu trả lơi của bạn.

Có lẽ đáng ngạc nhiên, câu trả lời không phải là NULL hay 255. Thay vào đó, câu trả lời là

$a = '1';
$b = &$a;
$b = "2$b";
0 sẽ bằng 0 (không).

Why?

Đầu tiên, hãy để xem xét liệu

$x = true;       // sets $x equal to true
true and false;  // results in false, but has no affect on anything
62 sẽ đánh giá là đúng hay sai. Khi một chuỗi hex được so sánh một cách lỏng lẻo với một số nguyên, nó được chuyển đổi thành một số nguyên. Trong nội bộ, PHP sử dụng
$x = true;       // sets $x equal to true
true and false;  // results in false, but has no affect on anything
63 để phát hiện chuỗi chứa giá trị hex và chuyển đổi nó thành một số nguyên (vì toán hạng khác là một số nguyên). Vì vậy, trong trường hợp này, ‘0xff, được chuyển đổi thành số nguyên tương đương là 255. Vì 255 = 255, điều kiện này đánh giá là true. (Lưu ý rằng điều này chỉ hoạt động cho các chuỗi hex, không phải cho chuỗi octal hoặc chuỗi nhị phân.)

Nhưng nếu trường hợp đó, thì có nên tuyên bố

$x = true;       // sets $x equal to true
true and false;  // results in false, but has no affect on anything
64 thực thi và dẫn đến
$a = '1';
$b = &$a;
$b = "2$b";
0 được đặt bằng 255 không?

Chà, câu lệnh thực hiện, nhưng nó dẫn đến

$a = '1';
$b = &$a;
$b = "2$b";
0 được đặt bằng 0, không phải 255 (tức là, nó không được đặt thành số nguyên tương đương với ‘0xff,). Lý do là loại đúc rõ ràng của chuỗi vào số nguyên sử dụng
$x = true;       // sets $x equal to true
true and false;  // results in false, but has no affect on anything
67 (hoạt động khác với hàm
$x = true;       // sets $x equal to true
true and false;  // results in false, but has no affect on anything
63 được sử dụng để đánh giá biểu thức có điều kiện, như đã giải thích ở trên).
$x = true;       // sets $x equal to true
true and false;  // results in false, but has no affect on anything
67 xử lý chuỗi một ký tự tại một thời điểm từ trái sang phải và dừng ở ký tự không phải là số đầu tiên mà nó đạt được. Trong trường hợp ‘0xff, nhân vật không phải là số đầu tiên là‘ X, vì vậy phần duy nhất của chuỗi được xử lý là ‘0 ban đầu. Do đó, giá trị được trả về bởi
$x = true;       // sets $x equal to true
true and false;  // results in false, but has no affect on anything
70 là 0, vì vậy khi mã hoàn thành,
$a = '1';
$b = &$a;
$b = "2$b";
0 sẽ bằng 0.

Làm thế nào bạn có thể biết nếu một số chẵn hoặc lẻ mà không sử dụng bất kỳ điều kiện hoặc vòng lặp?

$x = true;       // sets $x equal to true
true and false;  // results in false, but has no affect on anything
7

Sự khác biệt giữa

$x = true;       // sets $x equal to true
true and false;  // results in false, but has no affect on anything
72 và
$x = true;       // sets $x equal to true
true and false;  // results in false, but has no affect on anything
73, bạn sẽ sử dụng cái nào trong trường hợp bạn cần kết nối với cơ sở dữ liệu và tại sao?

$x = true;       // sets $x equal to true
true and false;  // results in false, but has no affect on anything
72 hoặc
$x = true;       // sets $x equal to true
true and false;  // results in false, but has no affect on anything
75 cho phép bao gồm một tệp và trong trường hợp thiếu tệp hoặc có tên sai, chúng tôi nhận được thông báo lỗi và thực thi vẫn sẽ tiếp tục bất kể.

Mặt khác,

$x = true;       // sets $x equal to true
true and false;  // results in false, but has no affect on anything
73 hoặc
$x = true;       // sets $x equal to true
true and false;  // results in false, but has no affect on anything
77 sẽ phù hợp trong trường hợp một tệp cần được đưa vào một lần và nếu nó bị thiếu hoặc có tên sai thì chúng tôi nhận được lỗi nghiêm trọng và việc thực hiện chương trình dừng lại.

$x = true;       // sets $x equal to true
true and false;  // results in false, but has no affect on anything
78 hoặc
$x = true;       // sets $x equal to true
true and false;  // results in false, but has no affect on anything
77 là một phương pháp phù hợp trong trường hợp có liên quan đến tệp kết nối cơ sở dữ liệu và giúp giảm bớt khả năng nhiều trường hợp của cùng một tệp được bao gồm nhiều lần.

Sự khác biệt giữa phiên và cookie là gì?

Một phiên lưu trữ giá trị trên máy chủ và cookie lưu trữ giá trị trong trình duyệt của người dùng.

$x = true;       // sets $x equal to true
true and false;  // results in false, but has no affect on anything
8

Làm nổi bật tất cả các ký tự Trung Quốc màu đỏ và trả lại chuỗi.

$x = true;       // sets $x equal to true
true and false;  // results in false, but has no affect on anything
9

Viết một mẫu mã hiển thị toán tử điều kiện ternary lồng nhau trong PHP.

$x = 5;
echo $x;
echo "
"; echo $x+++$x++; echo "
"; echo $x; echo "
"; echo $x---$x--; echo "
"; echo $x;
0

Ở đây chúng tôi đang gán các chuỗi khác nhau cho biến

$x = true;       // sets $x equal to true
true and false;  // results in false, but has no affect on anything
80 dựa trên giá trị số (
$x = true;       // sets $x equal to true
true and false;  // results in false, but has no affect on anything
81).

Xem xét mã sau:

$x = 5;
echo $x;
echo "
"; echo $x+++$x++; echo "
"; echo $x; echo "
"; echo $x---$x--; echo "
"; echo $x;
1

Đầu ra sẽ là:

$x = 5;
echo $x;
echo "
"; echo $x+++$x++; echo "
"; echo $x; echo "
"; echo $x---$x--; echo "
"; echo $x;
2

Tại sao? Làm thế nào mã này có thể được sửa chữa để hoạt động chính xác?

Vấn đề ở đây là

$x = true;       // sets $x equal to true
true and false;  // results in false, but has no affect on anything
82 trả về chỉ số vị trí bắt đầu của
$x = true;       // sets $x equal to true
true and false;  // results in false, but has no affect on anything
83 trong
$x = true;       // sets $x equal to true
true and false;  // results in false, but has no affect on anything
84 (nếu được tìm thấy), nếu không, nó sẽ trả về
$a = '1';
$b = &$a;
$b = "2$b";
1. Vì vậy, trong ví dụ này,
$x = true;       // sets $x equal to true
true and false;  // results in false, but has no affect on anything
82 trả về
Warning: array_merge(): Argument #2 is not an array
Warning: array_merge(): Argument #1 is not an array
8 (sau đó bị ép buộc đến
$a = '1';
$b = &$a;
$b = "2$b";
1 khi được tham chiếu trong câu lệnh
$x = true;       // sets $x equal to true
true and false;  // results in false, but has no affect on anything
89). Đó là lý do tại sao mã không hoạt động đúng.

Giải pháp chính xác sẽ là so sánh rõ ràng giá trị được trả về bởi

$x = true;       // sets $x equal to true
true and false;  // results in false, but has no affect on anything
82 với
$a = '1';
$b = &$a;
$b = "2$b";
1 như sau:

$x = 5;
echo $x;
echo "
"; echo $x+++$x++; echo "
"; echo $x; echo "
"; echo $x---$x--; echo "
"; echo $x;
3

Lưu ý rằng chúng tôi đã sử dụng toán tử

$x = true;       // sets $x equal to true
true and false;  // results in false, but has no affect on anything
92, không chỉ toán tử
$x = true;       // sets $x equal to true
true and false;  // results in false, but has no affect on anything
93. Nếu chúng tôi sử dụng
$x = true;       // sets $x equal to true
true and false;  // results in false, but has no affect on anything
93, chúng tôi sẽ quay lại vấn đề mà
Warning: array_merge(): Argument #2 is not an array
Warning: array_merge(): Argument #1 is not an array
8 bị ép buộc
$a = '1';
$b = &$a;
$b = "2$b";
1 khi được tham chiếu trong biểu thức Boolean, do đó
$x = true;       // sets $x equal to true
true and false;  // results in false, but has no affect on anything
97 sẽ đánh giá thành
$a = '1';
$b = &$a;
$b = "2$b";
1.

Có nhiều thứ để phỏng vấn hơn là các câu hỏi kỹ thuật khó khăn, vì vậy chúng chỉ nhằm mục đích như một hướng dẫn. Không phải mọi ứng cử viên của người Viking đều có thể trả lời tất cả, cũng như không trả lời tất cả họ đảm bảo một ứng cử viên của một người. Vào cuối ngày, tuyển dụng vẫn là một nghệ thuật, một khoa học - và rất nhiều & nbsp; công việc.