The following will first analyze the problem of php new class
index.php file
function __autoload($_className) { require $_className.'.class.php'; } <span style="color: #ff0000">//新建类?? if (isset($_GET['index'])) { $m=new Main($_GET['index']); }else{ $m=new Main(); </span>} include $m->ui();
main.class.php file
class Main{ private $index; //构造方法,初始化数据 public function __construct($index=''){ $this->index=$index; } //ui函数include相应的包含文件 public function ui(){ if(empty($this->index)||!file_exists($this->index.'.inc')){ $this->index='start'; } return $this->index.'.inc'; } }
What’s the meaning of the part in red?: The parameter value passed by the constructor in the class has been set to be empty by default (public function __construct($index='')), why can’t we write $m= directly? new Main($_GET['index']);. If you don’t want to make a red-letter if judgment in the index, what should you write in the class? Thank you, I don’t quite understand
------Solution Idea----------------------
if (isset($_GET['index'])) { $m=new Main($_GET['index']); //如果 $_GET['index'] 存在则将 $_GET['index'] 作为参数 }else{ $m=new Main(); //否则使用默认参数 }
Using $_GET['index'] directly may cause a NOTICE level error
Indiscriminate use of incoming data may cause security issues
------Solution Idea----------------------
What do you think after slightly changing it?
<?php class Main{ private $index; //构造方法,初始化数据 public function __construct($index='') { $this->index=$index?$index:''; } //ui函数include相应的包含文件 public function ui() { if(empty($this->index)
------Solution Idea----------------------
!file_exists($this->index.'.inc')) { $this->index='start'; } return $this->index.'.inc'; } }
ps: How to create a file in php?
During the development process of PHP projects, it is often necessary to automatically create some files, such as generating static HTML, generating PHP cache files, generating txt files, etc. Let's share how to use the php program to create files and write content to the files.
In a project, files may need to be generated more than once, so we can define a function and call this function when a file needs to be created.
Step 1. Define the function writefile, which is used to open a file for writing. It will automatically create the file if it does not exist and write content to the file. The code is as follows.
<?php function writefile($fname,$str){ $fp=fopen($fname,"w"); fputs($fp,$str); fclose($fp); } ?>
Step 2. Use of functions. For example, create a test.txt file and write the content "abc", the code is as follows:
<?php $filename='test.txt'; $str='abc'; writefile($filename,$str); ?>
By following the above two steps, you can realize the function of creating files in PHP.