前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >被迫入门PHP,真香!

被迫入门PHP,真香!

作者头像
千羽
发布2023-10-25 12:34:28
2880
发布2023-10-25 12:34:28
举报
文章被收录于专栏:程序员千羽程序员千羽

每次回村,家里老人问起,你学啥专业?我说计算机,大家大概率就认为我是修电脑的了~~~~~~

虽然目前市面上php开发工程师不多,但是很多公司老项目还有保留php。这里也更一下php方向/路线/系列,希望对入门php或者是转php语言有所帮助。

PHP是什么

PHP是一种电脑语言:就像人们之间用不同的语言进行沟通一样,有中文,英语嘛。那么计算机之间也需要一种特殊的语言来进行交流。PHP就是一种计算机语言,但它的目的是用来构建互联网上的网页。

背景

最近入职的公司后端语言主要用golang和php,之前写Java比较多(java学了三年没学会)springboot,springcloud那一套,一下子接触php也是觉得怪怪的,看php文档,学了两周基础和框架:php基础,laravel、lumen、thinkphp框架等。然后硬着头皮上手开发了。

这里就挑一些与Java、golang等区别(坑)记录一下。系统学习的话,建议大家还是以官方文档为主

面向人群

  1. 其他语言转PHP:一家公司用什么语言,你就得会什么语言,一成不变的东西很少有,我们要做的是拥抱语言,拥抱技术,拥抱变化。
  2. 初学者:php基础主要针对那些没有或只有少量编程经验的人。了解PHP的基本概念、语法和常见用法,以帮助新手入门编程世界。
  3. Web开发初学者:许多选择学习PHP作为他们进入Web开发领域的起点。了解php的方向和了解如何创建动态网页和Web应用程序。
  4. 自学者:许多人选择通过自学来掌握编程技能,而PHP基础文章可以作为自学的起点,帮助他们建立坚实的编程基础。
  5. 非科班转码:有时,非计算机科学背景的人员需要使用PHP来完成特定的任务或项目。此文章可以帮助他们快速了解PHP的基础知识。

Java与PHP的区别(了解):

  1. 定位和用途。java是面向对象编程语言,包括但不限于电商,银行等;php是脚本语言,用于web应用程序开发;
  2. 语法和编程风格,java语法比较严谨,php语法比较灵活,支持混合编码;
  3. 社区和生态环境,java有众多的框架和库,php有大量的扩展库和框架;
  4. 性能和扩展性,java的性能比php要高一些,开发时间和成本较高(从Java基础-spring-springboot那一套),php开发速度快。写起Java来说,用集合比较多,像什么hashmap,hashset。数组arrayList等等。php对数组用的比较多。而且内部api函数也特别多。总体下来,php开发确实快,不愧是:PHP是世界上最好的语言。

环境安装

环境安装和Java,go等差不多。对应版本不太好找,官网最新是8点几。目前市面上用7.4比较多 对应的下载安装就完事了。

  • php各版本:https://windows.php.net/downloads/releases/archives/
  • 安装教程:自行百度

hello world

写php用VScode,PhpStorm都行。写完之后浏览器运行就出来了。

代码语言:javascript
复制
<?php
echo "Hello World!";
?>

PHP注释(与go,Java等差不多)

代码语言:javascript
复制
<?php
// 这是 PHP 单行注释
/**
 * 这是 PHP 多行注释
 */
?>

PHP 变量

php变量和其他语言差别,php直接用 $ 表示就行,有点类似golang

代码语言:javascript
复制
<?php
    $txt = "Hello world!";
    $x = 5;
    $y = 10.5;
?>

PHP 变量作用域

PHP 有四种不同的变量作用域:local、global、static、parameter

PHP global 关键字

global 关键字用于函数内访问全局变量。

在函数内调用函数外定义的全局变量,需要在变量前加上 global 关键字:

代码语言:javascript
复制
<?php
$x=5;
$y=10;
 
function myTest()
{
    global $x,$y;
    $y=$x+$y;
}
 
myTest();
echo $y; // 输出 15
?>

PHP echo 和 print 语句

echo 和 print 区别:

  • echo - 可以输出一个或多个字符串
  • print - 只允许输出一个字符串,返回值总为 1

提示:echo 输出的速度比 print 快, echo 没有返回值,print有返回值1。

demo

代码语言:javascript
复制
<?php
echo "<h2>PHP 很有趣!</h2>";
echo "Hello world!<br>";
echo "我要学 PHP!<br>";
echo "这是一个", "字符串,", "使用了", "多个", "参数。";
?>

<?php
$txt1 = "学习 PHP";
$txt2 = "nateshao.com";
$cars = array("Volvo", "BMW", "Toyota");

echo $txt1;
echo "<br>";
echo "在 $txt2 学习 PHP ";
echo "<br>";
echo "我车的品牌是 {$cars[0]}";
?>

<?php
print "<h2>PHP 很有趣!</h2>";
print "Hello world!<br>";
print "我要学习 PHP!";
?>

<?php
print "<br>";
$txt1 = "学习 PHP";
$txt2 = "nateshao.com";
$cars = array("Volvo", "BMW", "Toyota");

print $txt1;
print "<br>";
print "在 $txt2 学习 PHP ";
print "<br>";
print "我车的品牌是 {$cars[1]}";
?>

PHP数据类型

PHP 支持以下几种数据类型:

String

Integer

Float

Boolean

Array

Object

NULL

Resource

字符串

整型

浮点型

布尔型

数组

对象

空值

资源类型

整体和Java差不多,

  1. Java的数据类型:byteshortintlongfloatdoublecharboolean
  2. Java还有引用数据类型:类(Class),接口(Interface),数组(Array),枚举(Enum),字符串(String)

php用的数组比较多,而且php提供了很多数组api,直接使用即可。

PHP 类型比较(重要)

官方文档:

  1. https://www.php.net/manual/zh/language.operators.comparison.php
  2. https://www.php.net/manual/zh/types.comparisons.php

松散比较 ==

严格比较 ===

=====

  • 两个等号 == 比较,只比较值,不比较类型。
  • 三个等号 === 比较,除了比较值,也比较类型。

"42" 是一个字符串而 42 是一个整数。FALSE 是一个布尔值而 "FALSE" 是一个字符串。

代码语言:javascript
复制
<?php
if(42 == "42") {
    echo '1、值相等';
}
 
echo PHP_EOL; // 换行符
 
if(42 === "42") {
    echo '2、类型相等';
} else {
    echo '3、类型不相等';
}
?>
------------
1、值相等
3、类型不相等

好比于Java的==和equals()有什么区别了(八股文)

PHP 字符串变量和字符串函数

无论是Java,golang语言,对字符串的处理,使用还是比较多的。

  • explode:使用一个字符串分割另一个字符串
    • implode:用字符串连接数组元素
  • str_contains:确定字符串是否包含指定子串
  • str_repeat:重复一个字符串
  • str_replace:子字符串替换
  • strlen:获取字符串长度
  • trim:去除字符串首尾处的空白字符(或者其他字符)

PHP常用数组

  • array_column:返回输入数组中指定列的值
  • array_count_values:统计数组中每个不同值的出现次数
  • array_diff:计算数组的差集
  • count:统计数组、Countable 对象中所有元素的数量
  • in_array:检查数组中是否存在某个值
  • array_values:返回数组中所有的值
  • array_unique:移除数组中重复的值
  • array_filter:使用回调函数过滤数组的元素
  • array_key_exists:检查数组里是否有指定的键名或索引
  • array_keys:返回数组中部分的或所有的键名
  • array_map:为数组的每个元素应用回调函数
  • array_merge:合并一个或多个数组
  • array_replace:使用传递的数组替换第一个数组的元素
  • array_reverse:返回单元顺序相反的数组
  • array_search:在数组中搜索给定的值,如果成功则返回首个相应的键名

PHP for循环

循环和其他语言差不多,写的简单例子就好了

代码语言:javascript
复制
<?php
        $lists = [
            1 => "千羽",
            2 => "詹姆斯",
            3 => "凯里"
        ];
        foreach ($x as $key => $value)
        {
            echo "key  为 " . $key . ",对应的 value 为 ". $value . PHP_EOL;
        }
?>
输出:
key  为 1,对应的 value 为 千羽
key  为 2,对应的 value 为 詹姆斯
key  为 3,对应的 value 为 凯里

PHP 命名空间(namespace)

代码语言:javascript
复制
namespace App\Http\Controllers\Factory; // 定义:
use MyNamespace\MyClass;       // 使用:
$obj = new MyNamespace\MyClass();  // 类和函数访问:

Java的导包

代码语言:javascript
复制
import com.example.MyClass; // 导包声明:
com.example.MyClass obj = new com.example.MyClass(); // 创建

PHP 面向对象

面向对象在Java也有,相信大家应该都知道,三个特性是:继承,封装,多态。

在PHP中,面向对象编程允许创建类和对象,这些类定义了对象的属性(成员变量)和方法(成员函数),并提供了一种更模块化、可维护和可扩展的代码组织方式。(好抽象)

写的demo,可能就明白了

代码语言:javascript
复制
<?php
// 定义一个Person类
class Person {
    // 类的属性
    public $name;
    public $age;
    
    // 构造函数
    public function __construct($name, $age) {
        $this->name = $name;
        $this->age = $age;
    }
    
    // 类的方法
    public function greet() {
        echo "Hello, my name is " . $this->name . " and I am " . $this->age . " years old.";
    }
}

// 创建Person对象
$person1 = new Person("千羽", 21);

// 访问对象的属性和调用方法
echo $person1->name; // 输出: 千羽
echo $person1->age;  // 输出: 21
$person1->greet();   // 输出: Hello, my name is 千羽 and I am 21 years old.
?>

  1. 首先定义了一个Person类,该类有两个属性name和age,以及一个构造函数__construct用于初始化属性。
  2. 构造函数接受两个参数,并将它们分别分配给对象的属性。
  3. 类中还定义了一个greet方法,用于输出一个问候语,引用了对象的属性。
  4. 然后,创建了一个$person1对象,使用new关键字实例化Person类,并传递姓名和年龄作为构造函数的参数。
  5. 最后,访问了对象的属性和调用了对象的方法。

这个示例演示了如何创建和使用PHP面向对象编程中的类和对象。

总结

这里简单列举了php常用的场景和区别。还有其他if...else,循环switch,运算符等等区别真不大。重点可能在于,对数组和字符串的使用。

具体详细的,更推荐大家可以到官网阅读。

日常开发满足对框架的使用,重点是对php数组和字符串,其他就是php框架了。还有就是sql的编写,这方面php框架也封装了对sql的操作。特别是对sql注入的处理等等。基本上,熟悉原生sql的编写,再按照php框架官方文档刷一下,还是可以很快上手。

ok,下篇介绍php的框架laravel,相当于Java里面的spring地位。

参考链接:

  1. 菜鸟教程:https://www.runoob.com/php/php-oop.html
  2. https://www.php.cn/faq/582584.html
  3. PHP官网-字符串 函数:https://www.php.net/manual/zh/ref.strings.php
  4. PHP官网-PHP常用数组:https://www.php.net/manual/zh/ref.array.php
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-10-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 千羽的编程时光 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • PHP是什么
  • 背景
  • 面向人群
  • Java与PHP的区别(了解):
  • 环境安装
  • hello world
  • PHP注释(与go,Java等差不多)
  • PHP 变量
  • PHP 变量作用域
  • PHP global 关键字
  • PHP echo 和 print 语句
  • PHP数据类型
  • PHP 类型比较(重要)
    • ==和===
    • PHP 字符串变量和字符串函数
    • PHP常用数组
    • PHP for循环
    • PHP 命名空间(namespace)
    • PHP 面向对象
    • 总结
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档