📅  最后修改于: 2023-12-03 15:18:32.578000             🧑  作者: Mango
PHP 是一个广泛应用于 Web 开发领域的编程语言,因此,很多公司在招聘 PHP 开发工程师时,会出现一些类似的问题。下面是一些 PHP 面试常见问题以及参考答案。
PHP 是一种开源的、服务器端的、跨平台编程语言,它可以嵌入到 HTML 页面中使用。
<?php
echo "Hello World!";
?>
这两个是 PHP 中常用的超全局变量。他们的主要区别在于提交表单的方式不同。$_GET 是通过 URL 参数提交的,而 $_POST 是通过 POST 方法提交的。
<?php
$name = $_GET['name']; // 获取 URL 参数
$password = $_POST['password']; // 获取 POST 提交的表单数据
?>
在 PHP 中,以下方法被称为魔术方法:
<?php
class Student {
private $name;
private $age;
public function __construct($name, $age) {
$this->name = $name;
$this->age = $age;
}
public function __get($property) {
if (property_exists($this, $property)) {
return $this->$property;
}
else
throw new Exception("Property not found.");
}
public function __set($property, $value) {
if (property_exists($this, $property)) {
$this->$property = $value;
}
else
throw new Exception("Property not found.");
}
public function __toString() {
return "Name: ".$this->name." Age: ".$this->age;
}
}
$student = new Student("Tom", 20);
echo $student; // 输出 Name: Tom Age: 20
?>
在 PHP 中,可以使用 PDO 或 mysqli 扩展连接 MySQL 数据库。
<?php
$host = "localhost";
$username = "username";
$password = "password";
$dbname = "dbname";
// 使用 PDO 连接数据库
try {
$conn = new PDO("mysql:host=$host;dbname=$dbname", $username, $password);
// 设置 PDO 错误模式为异常
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
echo "Connected successfully";
}
catch(PDOException $e) {
echo "Connection failed: " . $e->getMessage();
}
// 使用 mysqli 连接数据库
$conn = mysqli_connect($host, $username, $password, $dbname);
if (!$conn) {
die("Connection failed: " . mysqli_connect_error());
}
echo "Connected successfully";
?>
在 PHP 中,可以通过 $_FILES 超全局变量来处理上传的文件。具体实现可以使用 move_uploaded_file() 函数将上传的文件移动到指定的目录中。
<?php
$target_dir = "uploads/";
$target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]);
$uploadOk = 1;
$imageFileType = strtolower(pathinfo($target_file,PATHINFO_EXTENSION));
// 检查文件是否已存在
if (file_exists($target_file)) {
echo "File already exists.";
$uploadOk = 0;
}
// 检查文件大小
if ($_FILES["fileToUpload"]["size"] > 500000) {
echo "File is too large.";
$uploadOk = 0;
}
// 允许上传的文件类型
if($imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg"
&& $imageFileType != "gif" ) {
echo "Only JPG, JPEG, PNG & GIF files are allowed.";
$uploadOk = 0;
}
// 判断上传是否成功
if ($uploadOk == 0) {
echo "Sorry, your file was not uploaded.";
} else {
if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file)) {
echo "The file ". basename( $_FILES["fileToUpload"]["name"]). " has been uploaded.";
} else {
echo "Sorry, there was an error uploading your file.";
}
}
?>