Está en la página 1de 9

  //var_dump($name);//Imprime el tipo de variable y sus propiedades

  $lastname = 'Maciel';
  $name = "Roberto $lastname";//Si usamos comillas dobles, no necesitamos el 
punto, lo podemos meter
  $name2 = 'Roberto ' . $lastname;//Con comillas simples si necesitamos el p
unto

Arrays php

https://www.php.net/manual/es/language.types.array.php

<?php
$array = array(
    "curso1" => "php",
    "curso2" => "js",
);

// a partir de PHP 5.4
$array = [
    "curso1" => "php",
    "curso2" => "js",
];

// índices numéricos
$array = [
    "php",
    "js",
];
?>
Object

<?php
class Car
{
    function move()
    {
        echo "Going forward..."; 
    }
}

$myCar = new Car();
$myCar->move();
?>
Callable

<?php
// Variable que guarda un callable
$firstOfArray = function(array $array) {
    if (count($array) == 0) { return null; }
    return $array[0];
};

// Este es nuestro arreglo
$values = [3, 2, 1];

// Usamos nuestro callable y se imprime el valor 3
echo $firstOfArray($values);
?>

Iterable

<?php

function foo(iterable $iterable) {
    foreach ($iterable as $valor) {
        // ...
    } 
}

?>

Arrays

  /*$jobs = [
    1 => 'PHP Dev',
    0 => 'Python Dev',
    2 => 'Devops'
  ];*/

  $jobs = [//También podemos usar strings como llaves
    0 => 'PHP Dev',
    1 => 'Python Dev',
    2 => 'Devops'
  ];
  $jobs = [//Se accede con $jobs[0]['title']
    [
      'title' => 'PHP Developer',
      'description' => 'This is an awesome job!!'
    ],
    [
      'title' => 'Python Dev'
    ],
    [
      'title' => 'Devops'
    ]
  ];

Notas for

        Looping through letters is possible. I'm amazed at how few people kn
ow that.

          for($col = 'R'; $col != 'AD'; $col++) {
              echo $col.' ';
          }

          returns: R S T U V W X Y Z AA AB AC

          Take note that you can't use $col < 'AD'. It only works with !=
          Very convenient when working with excel columns.

Ejercicios

  //Ejercico 1
  $texto = "";
  foreach($arreglo as $llave => $valor){
    if($llave === array_key_first($arreglo))//Con array_key_first() obtenemo
s la primera llave del arreglo
      $texto .= ucfirst($valor).', ';//Con ucfisrt() ponemos la primera letr
a de nuestro valor en Mayúscula
    else  
    $texto .= "$valor, "; //El punto igual sirve para concatenar las cadenas 
de  texto en uno solo
    //De esta forma evitamos estar haciendo echo a cada momento;
  }
  $texto .= '<br/>decirlo al revés lo dudo.<br/>';
  $arrelo_reves = array_reverse($arreglo);//Array reves nos permite voltar n
uestro arreglo
  foreach($arrelo_reves as $llave => $valor){
    if($llave === array_key_first($arrelo_reves))
    $texto .= ucfirst($valor).', ';
    else  
    $texto .= "$valor, ";
  }
  $texto .= '<br/>¡Qué trabajo me ha costado!<br/>';
  echo $texto;

  //Ejercicio 2 //Forma uno
  $paises = [
    [
      'Country' => 'México',
      'City' => ['Monterrey', 'CDMX', 'Torreón']
    ],
    [
      'Country' => 'Colombia',
      'City' => ['Bogotá', 'Cartagena', 'Medellín']
    ],
    [
      'Country' => 'España',
      'City' => ['Madrid', 'Barcelona', 'Zaragoza']
    ]
  ];
  foreach($paises as $pais){
    echo '<strong>'.$pais['Country'].': </strong>';
    foreach($pais['City'] as $city)
      echo "$city ";
    echo '<br/>';
  }

  //Ejercicio 2 //Forma dos
  $paises = [
    'México' => ['Monterrey', 'CDMX', 'Torreón'],
    'Colombia' => ['Bogotá', 'Cartagena', 'Medellín'],
    'España' => ['Madrid', 'Barcelona', 'Zaragoza']
  ];
  foreach($paises as $pais => list($a, $b, $c)){
    echo "<strong>$pais: </strong>";
    echo "$a $b $c<br/>";
  }

  //Ejercicio 3
  $valores = [23, 54, 32, 67, 34, 78, 98, 56, 21, 34, 57, 92, 12, 5, 61];
  sort($valores);//Ordenamos los valores de menor a mayor
  list($a,$b,$c) = $valores;//Obtenemos los 3 primeros valores del array
  echo "<strong>Valores mayores: </strong>$a, $b, $c";
  $valores = array_reverse($valores);//Ordenamos los valores de mayor a meno
r
  list($a,$b,$c) = $valores;
  echo "<strong>Valores menores: </strong>$a, $b, $c";

Uso de continue

for($idx = 0; $idx < count($jobs); $idx++){//counts($jobs) el length de nues
tro array
                if($jobs[$idx]['visible'] == false){
                  continue;//Nos manda a de nuevo al inicio del for, a hacer 
otra iteración
                  //De esta forma se salta los ecos y va directo al for si s
e cumple el if
                }
                echo '<li class="work-position">
                  <h5>'.$jobs[$idx]['title'].'</h5>
                  <p>'.$jobs[$idx]['description'].'</p>
                  <strong>Achievements:</strong>
                  <ul>
                    <li>Lorem ipsum dolor sit amet, 80% consectetuer adipisc
ing elit.</li>
                    <li>Lorem ipsum dolor sit amet, 80% consectetuer adipisc
ing elit.</li>
                    <li>Lorem ipsum dolor sit amet, 80% consectetuer adipisc
ing elit.</li>
                  </ul>
                </li>';
              }

Operadores dobles

            $i=0;
            echo ++$i; //Imprimirá 1, primero hace la operación y después el 
echo o función.
            echo $i++; //Imprimirá 0, primero hace el echo o función y despu
és la operación.

Elevar a Potencia

$a**$b eleve $a a la $b
Clases

class job{
  private $title;
  public $description;
  public $visible = true;
  public $months;

  public function __construct($title, $description){
    $this->setTitle($title);
    $this->description = $description;
  }
  public function getTitle(){
    return $this->title;
  }

  public function setTitle($title){
    if($title == '')
      $this->title = 'N/A';
    else
      $this->title = $title;
  }

  public function getDurationAsString(){
    $years = floor($this->months / 12);
    $extraMonths = $this->months % 12;
    if($years == 0)
      return "$extraMonths months";
    else if($extraMonths == 0)
      return "$years years";
    else
      return "$years years $extraMonths months";
  }
}

$job1 = new job('PHP Developer', 'This is an awesome job!!');
$job1->months = 16;

$job2 = new job('Python Developer', 'This is an awesome job!!');
$job2->months = 24;

$job3 = new job('', 'This is an awesome job!!');
$job3->months = 28;
Herencia

<?php
require_once 'BaseElement.php';

class Job extends BaseElement{
    public function __construct($title, $description){
        $newTitle = "Job: $title";
        $this->title = $newTitle;//Tenemos que declararla com protected
    }

    public function getDurationAsString(){
        $years = floor($this->months / 12);
        $extraMonths = $this->months % 12;
        if($years == 0)
          return "Job Duration:  $extraMonths months";
        else if($extraMonths == 0)
          return "Job Duration:  $years years";
        else
          return "Job Duration: $years years $extraMonths months";
    }
}

Polimorfismo es sobreescribir los métodos de la clase padre en sus hijas

En las interfaces se declara lo que se va a llevar en la clase, solo los métodos

interface Printable{
    public function getDescription();
}

Los namespace y los use nos permite para solucionar el problema de que dos clases se llamen
igual, de esta forma cada una tiene su propio namespace y no colisionan, si tienes dudas, volver a
buscar al respecto

Declaración namespace

namespace App\Models;

Lllamado con use

use App\Models\{Job, Project, Printable};

Solo fncionan con clases.


Grupo de php

https://www.php-fig.org/

Con composer autoload nos evitamos la parte de los requires y hacemos un único require

require_once 'vendor/autoload.php';

instalar composer:

lo descargas, copias el archivo a tu carpeta y en la consola de xampp o cualquiera con php escribes

php conposer.phar install

antes debes de crear un coposer.json con lo siguiente

{
    "autoload":{
        "psr-4": {
            "App\\": "app/"
        }
    },
    "require": {}
}

Como descargamos composer de la manera anterior, usamos php composer.phar como comando
en vez de composer

Investigar mas de eloquent y sistemas ORM, son intermedios entre la DB y el servidor y funcionan
en mas de una DB

$route = $_GET['route'] ?? '/'; //si no existe el get, route vale /

if($route == '/'){
    require_once '../views/user.php';
}
elseif($route == 'hola'){
    require_once '../views/login.php';
}
//Esto sirve para ver errores en pantalla al correr PHP, solo para desarroll
o.
//Eliminar al momento de subir
ini_set('display_errors', 1);
ini_set('display_starup_error', 1);
error_reporting(E_ALL);

También podría gustarte