一道新浪的 PHP 面试题,代码输出是否跟运行环境相关?
写出以下代码的输出:
try {
include_once "aaa";
print "aaa";
} catch (Exception $e) {
print 'dddd';
}
我的回答是:如果 include_path 中包含有 aaa 为文件名的文件,则代码输出 aaa。 否则输出 ddd。
面试官对我的回答提出质疑:代码就是代码,只有可能有一种输出结果。
我对面试管的追问答复:
你可以认为我这道题答错了。
从这道题以后面试官(一面)对我的技术能力持怀疑态度。后面的 MySQL char(2) 能保存几个中文字符,由于学艺不精没有答上来。后来二面直接让我在待遇和机遇中做权衡。
回复内容:
首先面试不一定要回答出abc才是正确的...最主要的是一次思考的过程,对于很多知识点举一反三的能力...
第一题:考的是include 和 require的区别
include 包含不存在的文件,只会抛出warning,require 包含不存在的文件会报fatal error
所以该题无论如何都会输出ddd 因为不会报错,所以不会抛出异常...
反之如果是require包含,如果aaa文件不存在则会抛出异常,跳转到catach代码块,否则输出ddd
第二题:考的是对中文按字节如何存储,char 存储的字节
utf-8下 每个中文对应3个字节,char(2) 代表该行该列存储暂用2个字节(无论存几个字符)
所以1个都办法存储...
如果你能这样回答,并举一反三的话,面试官一定会看好你哦~
latin1:
1character=1byte, 1汉字=2character(字符),
也就是说一个字段定义成 varchar(200),则它可以存储100个汉字或者200个字母。
这一点要注意,尤其是当字段内容是字母和汉字组成时,尽量假设字段内容都是由汉字组成,据此来设置字段长度
utf8:
1character=3bytes, 1汉字=1character(字符)
也就是说一个字段定义成 varchar(200),则它可以存储200个汉字或者200个字母。
gbk:
1character=2bytes,1汉字=1character(字符)
也就是说一个字段定义成 varchar(200),则它可以存储200个汉字或者200个字母。 第一题经过测试 Warning之后输出 aaa 如果换成require 也只是到Fatal error: require() [function.require]: Failed opening required 'aaa' 。。。然后什么都不会再输出了,也不抛出异常第二题 经过测试可以存储2个中文字符
CREATE TABLE `testchar` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`aa` char(2) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;
INSERT INTO `testchar` VALUES ('1', '啊');
INSERT INTO `testchar` VALUES ('2', '啊啊');
INSERT INTO `testchar` VALUES ('3', '啊啊啊'); 刚才在本机做了一下测试,当 include_path 中没有找到 aaa 为文件名的文件时,该代码会有 Warning 级别的错误提示:failed to open stream ....。而当include_path 中存在该文件时,代码会输出"aaa".
我认为这道题实际是考察 include_once 的报错会无视 try catch 语句这个知识点。我学艺不精,回答只答对了一半。那么面试官的追问:代码只有可能有一种输出的观点是否正确呢?

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



Anda boleh membuka phpmyadmin melalui langkah -langkah berikut: 1. Log masuk ke panel kawalan laman web; 2. Cari dan klik ikon phpmyadmin; 3. Masukkan kelayakan MySQL; 4. Klik "Login".

MySQL adalah sistem pengurusan pangkalan data relasi sumber terbuka, terutamanya digunakan untuk menyimpan dan mengambil data dengan cepat dan boleh dipercayai. Prinsip kerjanya termasuk permintaan pelanggan, resolusi pertanyaan, pelaksanaan pertanyaan dan hasil pulangan. Contoh penggunaan termasuk membuat jadual, memasukkan dan menanyakan data, dan ciri -ciri canggih seperti Operasi Join. Kesalahan umum melibatkan sintaks SQL, jenis data, dan keizinan, dan cadangan pengoptimuman termasuk penggunaan indeks, pertanyaan yang dioptimumkan, dan pembahagian jadual.

Redis menggunakan satu seni bina berulir untuk memberikan prestasi tinggi, kesederhanaan, dan konsistensi. Ia menggunakan I/O multiplexing, gelung acara, I/O yang tidak menyekat, dan memori bersama untuk meningkatkan keserasian, tetapi dengan batasan batasan konkurensi, satu titik kegagalan, dan tidak sesuai untuk beban kerja yang berintensifkan.

Kedudukan MySQL dalam pangkalan data dan pengaturcaraan sangat penting. Ia adalah sistem pengurusan pangkalan data sumber terbuka yang digunakan secara meluas dalam pelbagai senario aplikasi. 1) MySQL menyediakan fungsi penyimpanan data, organisasi dan pengambilan data yang cekap, sistem sokongan web, mudah alih dan perusahaan. 2) Ia menggunakan seni bina pelanggan-pelayan, menyokong pelbagai enjin penyimpanan dan pengoptimuman indeks. 3) Penggunaan asas termasuk membuat jadual dan memasukkan data, dan penggunaan lanjutan melibatkan pelbagai meja dan pertanyaan kompleks. 4) Soalan -soalan yang sering ditanya seperti kesilapan sintaks SQL dan isu -isu prestasi boleh disahpepijat melalui arahan jelas dan log pertanyaan perlahan. 5) Kaedah pengoptimuman prestasi termasuk penggunaan indeks rasional, pertanyaan yang dioptimumkan dan penggunaan cache. Amalan terbaik termasuk menggunakan urus niaga dan preparedStatemen

MySQL dipilih untuk prestasi, kebolehpercayaan, kemudahan penggunaan, dan sokongan komuniti. 1.MYSQL Menyediakan fungsi penyimpanan dan pengambilan data yang cekap, menyokong pelbagai jenis data dan operasi pertanyaan lanjutan. 2. Mengamalkan seni bina pelanggan-pelayan dan enjin penyimpanan berganda untuk menyokong urus niaga dan pengoptimuman pertanyaan. 3. Mudah digunakan, menyokong pelbagai sistem operasi dan bahasa pengaturcaraan. 4. Mempunyai sokongan komuniti yang kuat dan menyediakan sumber dan penyelesaian yang kaya.

Apache menyambung ke pangkalan data memerlukan langkah -langkah berikut: Pasang pemacu pangkalan data. Konfigurasikan fail web.xml untuk membuat kolam sambungan. Buat sumber data JDBC dan tentukan tetapan sambungan. Gunakan API JDBC untuk mengakses pangkalan data dari kod Java, termasuk mendapatkan sambungan, membuat kenyataan, parameter mengikat, melaksanakan pertanyaan atau kemas kini, dan hasil pemprosesan.

Pemantauan yang berkesan terhadap pangkalan data REDIS adalah penting untuk mengekalkan prestasi yang optimum, mengenal pasti kemungkinan kesesakan, dan memastikan kebolehpercayaan sistem keseluruhan. Perkhidmatan Pengeksport Redis adalah utiliti yang kuat yang direka untuk memantau pangkalan data REDIS menggunakan Prometheus. Tutorial ini akan membimbing anda melalui persediaan lengkap dan konfigurasi perkhidmatan pengeksport REDIS, memastikan anda membina penyelesaian pemantauan dengan lancar. Dengan mengkaji tutorial ini, anda akan mencapai tetapan pemantauan operasi sepenuhnya

Kaedah untuk melihat ralat pangkalan data SQL adalah: 1. Lihat mesej ralat secara langsung; 2. Gunakan kesilapan menunjukkan dan menunjukkan perintah amaran; 3. Akses log ralat; 4. Gunakan kod ralat untuk mencari punca kesilapan; 5. Semak sambungan pangkalan data dan sintaks pertanyaan; 6. Gunakan alat debugging.
