批改状态:合格
老师批语:
php 有 8 种变量类型:
php 变量名以 $ 开头,声明的时候需要同时赋值:$userName = ‘Peter’。
变量名大小写敏感。(函数名大小写不敏感)
php 变量是弱类型,其类型由赋给它的值决定,且变量赋值后可以再次赋值不同类型的值,以改变变量的类型。
$userName = 'Peter';var_dump($userName); // string(5) "Peter"$userName = 58;var_dump($userName); // int(58)
可以使用 unset() 来释放变量
$userName = 'Peter';var_dump($userName); // string(5) "Peter"
$boo = true;var_dump($boo); // bool(true)
$int = 58;var_dump($int); // int(58)
$price = 99.99;var_dump($price); // float(99.99)
根据键名,分为索引数组和关联数组。按数组维度,分为一维数组和多维数组
声明方式:$arr = [‘key’=>’value’,…] 或者 $arr = array(‘key’=>’value’,…)
$arr = ['php','java','python'];// 索引数组声明时 key 可以省略// 等同于:$arr = [0=>'php',1=>'java',2=>'python'];var_dump($arr);// array(3) { [0]=> string(3) "php" [1]=> string(4) "java" [2]=> string(6) "python" }
$arr = array('id'=>1,'name'=>'admin','email'=>'admin@qq.com');print_r($arr);// 输出:// Array// (// [id] => 1// [name] => admin// [email] => admin@qq.com// )
// 二维数组$arr = ['id'=>1,'name'=>'admin','info'=>['gender'=>'male','age'=>28,'email'=>'admin@qq.com']];print_r($arr);// 输出:// Array// (// [id] => 1// [name] => admin// [info] => Array// (// [gender] => male// [age] => 28// [email] => admin@qq.com// )// )
1)for 循环
$navs = ['首页', '视频教程', '学习路径', 'PHP培训新', '资源下载', '技术文章'];$nav = '';for ($i = 0; $i < count($navs); $i++){$nav .= "<a href='' style='padding:0 15px'>$navs[$i]</a>";}echo $nav;// 输出:// <a href='' style='padding:0 15px'>首页</a>// <a href='' style='padding:0 15px'>视频教程</a>// <a href='' style='padding:0 15px'>学习路径</a>// <a href='' style='padding:0 15px'>PHP培训新</a>// <a href='' style='padding:0 15px'>资源下载</a>// <a href='' style='padding:0 15px'>技术文章</a>
2)foreach
$navs = [['id' => 1, 'name' => '视频教程', 'url' => 'https://www.php.cn/course.html'],['id' => 2, 'name' => '学习路径', 'url' => 'https://www.php.cn/map.html'],['id' => 3, 'name' => 'PHP培训新', 'url' => 'https://www.php.cn/k.html'],['id' => 4, 'name' => '资源下载', 'url' => 'https://www.php.cn/xiazai/']];$nav = '';foreach ($navs as $k => $v) {$nav .= "<a href='{$v['url']}' style='padding:0 15px'>{$v['name']}</a>";}echo $nav;// 输出:// <a href="https://www.php.cn/course.html" style="padding:0 15px">视频教程</a>// <a href="https://www.php.cn/map.html" style="padding:0 15px">学习路径</a>// <a href="https://www.php.cn/k.html" style="padding:0 15px">PHP培训新</a>// <a href="https://www.php.cn/xiazai/" style="padding:0 15px">资源下载</a>// 简化// extract() — 从关联数组中提取一个成员,把成员的键当作变量的名称,成员的值当作变量的值// 不能是索引数组,因为 php 变量名不能以数字开始// 注意:不要对不可信的数据使用 extract(),如用户输入数据($_GET、$_POST)foreach ($navs as $k => $v) {extract($v);$nav .= "<a href='{$url}' style='padding:0 15px'>{$name}</a>";}echo $nav;// 输出同上
3)list()
list() ,语言结构,将数组的值批量赋值给一组变量。
$arr = ['php', 'java', 'python'];list($php, $java, $py) = $arr;echo "{$php},{$java},{$py}是编程界比较受欢迎的后端语言";// php,java,python是编程界比较受欢迎的后端语言
对象是类实例化的结果,类是具体相同属性和行为的一组对象的集合,用来表示一个应用中进行操作的实体项目,例如:NBA 球员
// 定义类class NbaPlayer{private $name;public $team;public function getName(){return $this->name;}public function setName($name){$this->name = $name;}}// 类只是一个模板,不能对其本身进行实际操作// 需要基于这个模板创建(实例化)对象,使用 new 关键词$james = new NbaPlayer;// 然后就可以对创建的对象进行操作$james -> setName('James');$james -> team = 'Lakers';echo $james -> getName(); // Jamesecho $james -> team; // Lakers
保存了外部资源的一个引用,例如:fopen() 打开的文件资源,new PDO 创建的数据库连接,curl_init() 获取的 cURL 句柄等。
// 打开:fopen(fileneme, mode)// 参数 r :只读方式打开,将文件指针指向文件头。成功时返回文件指针资源$handle = fopen('data.txt', 'r');var_dump($handle); // resource(5) of type (stream)// 读取:fread($handle, length),length:要读取的字节长度// UTF-8 编码中,一个中文汉字占 3 个字节$con = fread($handle, 11); // 注意:读取后指针位置会移动到 12,继续读取时从 12 开始echo $con; // 我的qq密// 读取全部:fread($handle, filesize(filename))// 前面不能有 fread$con = fread($handle, filesize('data.txt'));echo $con; // 我的qq密码是zhoujielun521125
// ! null 不是指 0 false ''// 1,访问未定义的变量@var_dump($password); // $password 未定义// 输出:NULL// @ 抑制错误// 2,显式申明$pdo = null;var_dump($pdo); // NULL// 3,访问被释放后的变量(等同于未定义)$uname = 'Peter';unset($uname);@var_dump($uname); // NULL
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号