在测试PHP中的特征时,我有点困惑为什么要引入特征.我做了一些小实验.首先,我直接在一个类中调用trait方法
<?php
trait HelloWorld {
public function sayHello() {
echo 'Hello World!';
}
}
class TheWorldIsNotEnough {
use HelloWorld;
public function sayHellos() {
$o = new HelloWorld();
$o->sayHello();
}
}
$o = new TheWorldIsNotEnough();
$o->sayHellos();
?>
Run Code Online (Sandbox Code Playgroud)
我收到了一个错误
Fatal error: Cannot instantiate trait HelloWorld in C:\xampp\htdocs\test.php on line 35
Run Code Online (Sandbox Code Playgroud)
但是当我这样做的时候
<?php
trait HelloWorld {
public function sayHello() {
echo 'Hello World!';
}
}
class MyHelloWorld {
use HelloWorld;
}
class TheWorldIsNotEnough {
use HelloWorld;
public function sayHellos() {
$o = new …Run Code Online (Sandbox Code Playgroud) 请注意,我已经在 stackoverflow 中解决了几个与指针相关的问题,但我无法得到我将要问的类似问题。可能这个问题已经存在,我不知道要搜索的适当标签。这是我对 C 编程的怀疑。
第一期节目
#include <stdio.h>
#include <stdlib.h>
int main(void) {
int i,j;
int **p = (int **)malloc(2 * sizeof(int *));
p[0] = (int *)malloc(2 * sizeof(int));
p[1] = p[0];
for(i = 0; i < 2; i++)
for(j = 0; j < 2; j++)
p[i][j] = i + j;
printf("%d",p[0][0]);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
输出为 1
第二个程序
第 7 行更改为
p[1] = (int *)malloc(2 * sizeof(int));
Run Code Online (Sandbox Code Playgroud)
输出为0;
这两个程序看起来几乎相似,但它们给出了不同的结果。我只是无法理解下面发生了什么。任何人都可以请帮忙。