php学习路线

news/2024/10/22 18:43:40/

0.php环境搭建

单独搭建php非常麻烦,因此采用集成环境phpStudy,自带apache,mysql,nginx,php等。
编辑工具phpStorm或者vscode
composer,php包管理工具
thinkPHP,国内开源的web框架


 1.php基础学习

        php是功能强大的动态服务器脚本语言,不用编译直接运行,它强大在于web站点开发,提供了丰富的函数。ph被web服务器加载的php引擎解释执行。基础可以看php菜鸟教程或者黑马程序员PHP零基础入门到精通教程,有语言基础可以看下面是总结:
 1.1基本语法
标记

<?php code?> 
or
<script language="php"></script>

变量命名参考c语言,大小写敏感,注释参考c语言,变量可以使用中文;

分号,注释


1.2变量


局部变量定义和使用,$var = 10;
静态变量,static $var,与局部变量不同的是生命周期,局部变量在函数运行完成内存删除,使用static修饰,不会被删除。
可变变量 $$
全局变量,定义在函数外部,函数内访问使用global


超级全局变量,php语言提供
$GLOBALS,全局变量组,所有变量都可放入,在一个PHP脚本的全部作用域中都可以访问。
$_SERVER,web服务器的所有信息
$_REQUEST,用于收集HTML表单提交的数据。
$_POST
$_GET
$_FILES
$_ENV
$_COOKIE
$_SESSION

<?php
$x=5; // 全局变量
$y=10;function myTest()
{global $x;//x=5echo $y;//没有值
}function myTest1()
{static $x=0;//该行代码只执行一次echo $x;$x++;echo PHP_EOL;    // 换行符
}echo $_SERVER['HTTP_HOST'];echo $_POST["age"];echo $_GET["fname"]; //get cookie
echo $_COOKIE["user"];echo $_SESSION['views'];
?>


1.3 常量

1.3.1 普通常量
define,const定义,输出变量不需要$,特殊符号取值使用constant

define("GREETING", "欢迎访问 Runoob.com");echo GREETING;


1.3.2 魔术常量
php提供的预定义常量,__LINE__ __FILE__ __DIR__ __FUNCTION__(__METHOD__) __CLASS__  trait(override),__NAMESPACE__

<?php
echo '这是第 " '  . __LINE__ . ' " 行';
echo '该文件位于 " '  . __FILE__ . ' " ';
echo '该文件位于 " '  . __DIR__ . ' " ';
echo  '函数名为:' . __FUNCTION__ ;echo '类名为:'  . __CLASS__ . "<br>";
echo '命名空间为:"', __NAMESPACE__, '"'; 
?>


1.4 类型


简单类型(integer,float,string,boolean),
字符串拼接“.”,strlen();
字符串,

复杂类型(数组,对象),
### 数组,
数组 array,
关联数组(键值对),$age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");
二维数组 array(array(),array())
数组排序
#### 对象
定义类class Site{}
创建对象 $runoob = new Site;
调用对象函数,$hello-> sayHello()
构造函数,function __construct( $par1, $par2 ){}
析构函数,接口,继承,访问控制等参考c++;

特殊类型(NULL,Resource))获取类型 var_dump($bian);

var_dump查看变量类型和值,类型比较使用== 只比较值,用 === 比较,除了比较值还比较类型。

<?php
//简单类型
$x = 58;
var_dump($x);//输出类型和值
echo "<br>"; //数组
$cars=array("Volvo","BMW","Toyota");
var_dump($cars);//数组遍历//类
class Car
{var $color;function __construct($color="green") {$this->color = $color;}function what_color() {return $this->color;}
}// 实例一个对象
$herbie = new Car("white");//true,=== false
if(42 == "42") {echo '1、值相等';
}
?>

PHP中 比较 0、false、null、"" 松散比较true,严格比较false


1.5 函数


函数,值传递,引用传递,取地址&;

1.6 命名空间


相当于java包,c++命名空间,namespace

2. php高级


mysql,form,文件及上传等

3. php框架


ThinkPHP6.0完全开发手册
https://static.kancloud.cn/manual/thinkphp6_0/1037481
【李炎恢】【ThinkPHP6.x / PHP框架】【十天精品课堂系列】【83P / 已完结】,对着手册讲解
https://www.bilibili.com/video/BV12E411y7u8/


利用phpStudy搭建thinkphp,需要安装 composer


0.1 Phpstudy集成环境安装Composer
软件管理--》composer,安装;
phpStudy/extensions目录中,复制composer.bat 、composer.phar 两个文件到Extensions\php\php7.3.4nts 下面
Win+R 打开运行,并输入cmd,打开命令符窗口,输入composer -v 或者 php -v 命令,
配置 PATH 环境变量,“运行”输入sysdm.cpl,打开“系统属性”并切换至“高级”选项
编辑Path环境变量,E:\phpStudy\phpstudy_pro\Extensions\php\php7.3.4nts ;
 E:\phpStudy\phpstudy_pro\Extensions\composer1.8.5
 
 composer 设置阿里镜像
 composer config -g repo.packagist composer https://mirrors.aliyun.com/composer
 查看镜像,composer config --list
    无法下载tp,还原配置,
    composer config -g repo.packagist composer https://packagist.org
composer 1.x 无法创建tp,需要升级到 2.0;
composer self-update
回滚,composer self-update --rollback

0.2 Composer创建单应用项目
单应用
稳定版安装命令: composer create-project topthink/think tp
更新thinkphp核心
composer update topthink/framework
运行 , php think run

0.3 单应用项目运行在Apache

/tp放到phpstudy的WWW目录下,新建虚拟主机指向project/public

多应用 
在单应用中,添加composer require topthink/think-multi-app,然后进行如下调整
主要区别在app目录增加了应用子目录,然后配置文件和路由定义文件都纳入应用目录下。

创建多应用模块
下载多应用模块;composer require topthink/think-multi-app


4. php练手


ThinkPHP5.1新手博客项目实战,
黑马程序员ThinkPHP开发大型商城项目实战视频,提供学习思路;
https://www.bilibili.com/video/BV13s411h7Mb?p=8&vd_source=37a1eded1d0aa4243288d5a140577e3c


5. php实际项目源码阅读


勾股OA是一款基于ThinkPHP6 + Layui + MySql的OA项目,免费开源适合二开。
勾股OA部署思路
mkdir gougu;git clone;composer install;php think run;初始化
apache添加虚拟主机,并绑定pulic,访问,域名/index.php
配置pulic目录同级文件.htaccess文件,配置如下:
<IfModule mod_rewrite.c>
    Options +FollowSymlinks -Multiviews
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^(.*)$ index.php?/$1 [QSA,PT,L]
</IfModule>

打开debug模式,复制.env.debug 重命名为 .env ,.env优先于Config配置;关闭删除.env

参考勾股OA在线文档
https://blog.gougucms.com/home/book/detail/bid/3/id/8.html


5. 常见问题

5.1 Phpstudy解决mysql无法启动问题


原因主机安装并启动了mysql,无法启动自身集成。
直接 管理员打开cmd命令行输入:sc delete mysql 见效!
重新使用MySQL,那就重启服务。`mysqld --install`。
命令行窗口输入:net start mysql ,可以正常启动;

5.2 phpStudy 数字出现乱码

控制面板-->区域,语言设置,简体中文(不是简体香港)


http://www.ppmy.cn/news/439711.html

相关文章

联想拯救者Y7000亮度调低后屏幕黑屏

在设置里面拉亮度的时候一不小心拉到最低整个屏幕变黑了&#xff0c;重启也没有用&#xff0c;我还以为是显卡坏了。结果用快捷键Fn加上F6&#xff0c;亮度一亮就白回来了。把我给吓得

日常学习笔记——win10系统扩展双屏如何调整两边屏幕分辨率

1、右键空白处点击显示设置 2、显示器分别用1/2标识&#xff0c;如图 3、点击1显示器&#xff0c;在下方列表中选择分辨率 4、点击2显示器&#xff0c;下方分辨率列表选择分辨率。 5、确认即可

win11笔记本外接显示器仅第二屏幕时桌面图标会乱的解决方法

非【自动排列图标】的前提下 桌面-右键-显示设置 在当前屏幕下勾选【基于显示器连接记住窗口位置】 再回到桌面重新排布一下桌面图标即可 需要手动重排比较麻烦&#x1f605; 各个显示器之前不同步&#xff0c;也不很智能&#x1f605; 不过基本能满足日常按任务种类分区域放…

计算机显示器桌面变小,不知道按了什么电脑屏幕变小了怎么办_电脑屏幕设置在哪儿 - 驱动管家...

电脑屏幕变小了怎么调?下文将演示电脑屏幕变小设置方法&#xff0c;不知道按了什么键&#xff0c;电脑屏幕就变小了&#xff0c;还能不能够设置回来呢?让我们通过下文来了解吧。 第一步、把鼠标移动到电脑桌面空白处&#xff0c;右键鼠标选择“属性”。 第二步、在弹出来的框…

Win11分辨率和显示器不匹配出现黑边怎么办?

Win11分辨率和显示器不匹配出现黑边怎么办&#xff1f;安装好了Win11电脑系统之后&#xff0c;有用户发现自己安装的系统默认的分辨率和实际屏幕不匹配&#xff0c;那么这个情况下&#xff0c;我们自己如何去进行电脑屏幕分辨率的调整呢&#xff1f;接下来一起来看看具体的操作…

安卓在切换到横屏后,字体变大

安卓在切换到横屏后,字体变大 在清单文件中(AndroidManifest.xml) 切换横屏 android:screenOrientation"landscape"或者 在java代码中 setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);切换后字体变大. 解决办法: 此方法最好调用在setConte…

计算机桌面图标如何变小,电脑屏幕图标怎么变小_桌面图标太大怎么调小

我们都知道在正常情况下电脑桌面图标是设置好的&#xff0c;但是最近有的网友却遇到了图标突然变得很大的情况&#xff0c;虽然不影响正常运行&#xff0c;但是整个桌面看起来很奇怪&#xff0c;那对此电脑屏幕图标怎么变小呢&#xff1f;有些不熟悉的小伙伴不是很清楚&#xf…

计算机桌面变小,电脑屏幕变小了怎么办?电脑屏幕变小设置方法图文步骤

电脑屏幕变小了怎么调?下文将演示电脑屏幕变小设置方法&#xff0c;不知道按了什么键&#xff0c;电脑屏幕就变小了&#xff0c;还能不能够设置回来呢?让我们通过下文来了解吧。 第一步、把鼠标移动到电脑桌面空白处&#xff0c;右键鼠标选择“属性”。 第二步、在弹出来的框…