2024-03-20 陈辛娅 风俗小资讯
安装 Composer
c* l sS | php
php composer.phar install
安装 八字 PHP 库
```
composer require izyhsiao/bazizi
```
使用示例
```php
use Bazizi\Calculation;
$calculator = new Calculation();
// 输入出生日期和时间
$birthDateTime = ' 15:25:00';
// 计算八字
$bazizi = $calculator>calculate($birthDateTime);
// 访问八字信息
echo $bazizi>getYearPillar()>getHeavenlyStem() . "\n";
echo $bazizi>getYearPillar()>getEarthlyBranch() . "\n";
echo $bazizi>getMonthPillar()>getHeavenlyStem() . "\n";
echo $bazizi>getMonthPillar()>getEarthlyBranch() . "\n";
echo $bazizi>getDayPillar()>getHeavenlyStem() . "\n";
echo $bazizi>getDayPillar()>getEarthlyBranch() . "\n";
echo $bazizi>getHo* Pillar()>getHeavenlyStem() . "\n";
echo $bazizi>getHo* Pillar()>getEarthlyBranch() . "\n";
```
输出
```
```
```php
class BaziCalculate {
private $year; // 年
private $month; // 月
private $day; // 日
private $ho* ; // 时
private $year_gan; // 年天干
private $year_zhi; // 年地支
private $month_gan; // 月天干
private $month_zhi; // 月地支
private $day_gan; // 日天干
private $day_zhi; // 日地支
private $ho* _gan; // 时天干
private $ho* _zhi; // 时地支
private $shichen; // 时辰
private $liuhe; // 流合
private $chongsha; // 冲煞
private $hewang; // 合旺
private $xingji; // 行吉
private $jiuxin; // 久信
private $degong; // 德功
private $miung; // 命宫
private $ming; // 命造
private $tiangan = array("甲", "乙", "丙", "丁", "戊", "己", "庚", "辛", "壬", "癸"); // 天干
private $* = array("子", "丑", "寅", "卯", "辰", "巳", "午", "未", "申", "酉", "戌", "亥"); // 地支
private $tiangan_xingxing = array("甲木", "乙木", "丙火", "丁火", "戊土", "己土", "庚金", "辛金", "壬水", "癸水"); // 天干五行
private $* _xingxing = array("阳水", "阴土", "阳木", "阴木", "阳土", "阴火", "阳火", "阴土", "阳金", "阴金", "阳水", "阴木"); // 地支五行
private $shichen_xingxing = array(
"子时" => "阳水",
"丑时" => "阴土",
"寅时" => "阳木",
"卯时" => "阴木",
"辰时" => "阳土",
"巳时" => "阴火",
"午时" => "阳火",
"未时" => "阴土",
"申时" => "阳金",
"酉时" => "阴金",
"戌时" => "阳土",
"亥时" => "* ",
); // 时辰五行
private $wuxing = array("木", "火", "土", "金", "水"); // 五行
public function __construct($year, $month, $day, $ho* ) {
$this>year = $year;
$this>month = $month;
$this>day = $day;
$this>ho* = $ho* ;
$this>calculate();
}
private function calculate() {
// 计算年天干地支
$this>year_gan = $this>tiangan[$this>year % 10];
$this>year_zhi = $this>* [$this>year % 12];
// 计算月天干地支
$month_gan_index = ($this>year % 10 + $this>month 1) % 10;
$this>month_gan = $this>tiangan[$month_gan_index];
$this>month_zhi = $this>* [$this>month 1];
// 计算日天干地支
$day_gan_index = ($this>year % 10 + $this>month + $this>day 1) % 10;
$this>day_gan = $this>tiangan[$day_gan_index];
$this>day_zhi = $this>* [$this>day 1];
// 计算时天干地支
$ho* _gan_index = ($this>year % 10 + $this>month + $this>day + $this>ho* 1) % 10;
$this>ho* _gan = $this>tiangan[$ho* _gan_index];
$this>ho* _zhi = $this>* [$this>ho* ];
// 计算时辰
$this>shichen = $this>ho* _zhi . "时";
// 计算流合
$this>liuhe = array();
$this>liuhe[] = $this>year_zhi . $this>month_zhi;
$this>liuhe[] = $this>month_zhi . $this>day_zhi;
$this>liuhe[] = $this>day_zhi . $this>ho* _zhi;
$this>liuhe[] = $this>year_zhi . $this>day_zhi;
$this>liuhe[] = $this>month_zhi . $this>ho* _zhi;
$this>liuhe[] = $this>year_zhi . $this>ho* _zhi;
// 计算冲煞
$this>chongsha = array();
$this>chongsha[] = $this>year_zhi . $this>day_zhi;
$this>chongsha[] = $this>month_zhi . $this>ho* _zhi;
$this>chongsha[] = $this>day_zhi . $this>ho* _zhi;
// 计算合旺
$this>hewang = array();
$this>hewang[] = $this>year_zhi . $this>month_zhi . $this>day_zhi;
$this>hewang[] = $this>year_zhi . $this>month_zhi . $this>ho* _zhi;
$this>hewang[] = $this>year_zhi . $this>day_zhi . $this>ho* _zhi;
$this>hewang[] = $this>month_zhi . $this>day_zhi . $this>ho* _zhi;
// 计算行吉
$this>xingji = array();
$xingji_temp = array();
foreach ($this>tiangan as $gan) {
foreach ($this>* as $zhi) {
$xingji_temp[] = $gan . $zhi;
}
}
foreach ($this>xingji_temp as $xingji) {
if (substr($xingji, 0, 1) == substr($this>year_gan . $this>year_zhi, 0, 1) && substr($xingji, 1, 1) == substr($this>month_gan . $this>month_zhi, 1, 1)) {
$this>xingji[] = $xingji;
}
if (substr($xingji, 0, 1) == substr($this>year_gan . $this>year_zhi, 0, 1) && substr($xingji, 1, 1) == substr($this>day_gan . $this>day_zhi, 1, 1)) {
$this>xingji[] = $xingji;
}
if (substr($xingji, 0, 1) == substr($this>year_gan . $this>year_zhi, 0, 1) && substr($xingji, 1, 1) == substr($this>ho* _gan . $this>ho* _zhi, 1, 1)) {
$this>xingji[] = $xingji;
}
if (substr($xingji, 0, 1) == substr($this>month_gan . $this>month_zhi, 0, 1) && substr($xingji, 1, 1) == substr($this>day_gan . $this>day_zhi, 1, 1)) {
$this>xingji[] = $xingji;
}
if (substr($xingji, 0, 1) == substr($this>month_gan . $this>month_zhi, 0, 1) && substr($xingji, 1, 1) == substr($this>ho* _gan . $this>ho* _zhi, 1, 1)) {
$this>xingji[] = $xingji;
}
if (substr($xingji, 0, 1) == substr($this>day_gan . $this>day_zhi, 0, 1) && substr($xingji, 1, 1) == substr($this>ho* _gan . $this>ho* _zhi, 1, 1)) {
$this>xingji[] = $xingji;
PHP 8 教程
简介
PHP 8 是 PHP 编程语言的zui 新版本,于 2020 年 11 月发布。它引入了许多新特性和改进,包括:
联合类型
属性
空安全
匹配表达式
负值数组索引
改进的错误处理
联合类型
联合类型允许您在函数参数和变量声明中指定多个可能的类型。例如:
```php
function sum(int|float $num1, int|float $num2): int|float
ret* n $num1 + $num2;
```
属性
属性允许您在类中使用类似于字段的语法声明变量。例如:
```php
class Person
public string $name;
public int $age;
```
空安全
空安全通过在类型声明后添加问号 (?) 来允许变量包含 `null` 值。例如:
```php
function getUserName(?Person $person): ?string
ret* n $person ? $person>name : null;
```
匹配表达式
匹配表达式提供了简洁的方式来与 `switch` 语句类似的模式匹配。例如:
```php
$result = match ($input) {
1 => 'One',
2 => 'Two',
default => 'Unknown'
};
```
负值数组索引
负值数组索引允许您从数组末尾开始计数。例如:
```php
$arr = [1, 2, 3];
echo $arr[1]; // Output: 3
```
改进的错误处理
PHP 8 引入了新的错误处理机制,包括:
错误异常:将致命错误转换为异常。
严格模式:默认情况下启用严格模式,报告更多错误。
自定义异常类:允许您创建自己的异常类。
其他特性
PHP 8 还包括其他特性,例如:
JIT 编译器
命名参数
弱引用
结构化日志记录
安装 PHP 8
要安装 PHP 8,可以从以下位置下载安装包:
[官方 PHP 网站]()
[PECL 扩展管理器]()
安装完成后,请确保更新您的 PHP 配置文件以使用 PHP 8。
学习资源
有许多资源可以帮助您学习 PHP 8,包括:
[PHP 手册]()
[PHP 8 教程]()
[PHP 8 快速入门]()