Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Problema Ativação Biblioteca mb_strtoupper

Fiz todo o procedimento passo a passo como explicado no video retirando os ' ; ' antes do "mbstring" e "extension=mbstring" e mesmo assim a instalação não foi efetuada . E também fiz a verificação para ver se está instalado e não está.Segue o código e erros .obs : Usando a versão mais recente 7.4.7

<?php

require_once 'funcoes.php';

$contasCorrentes = [
    '123.456.789-10' => [
        'titular' => 'Maria',
        'saldo' => 10000
    ],
    '123.456.689-11' => [
        'titular' => 'Alberto',
        'saldo' => 300
    ],
    '123.256.789-12' => [
        'titular' => 'Vinicius',
        'saldo' => 100
    ]
];

$contasCorrentes['123.456.789-10'] = sacar(
    $contasCorrentes['123.456.789-10'],
    500
);

$contasCorrentes['123.456.689-11'] = sacar(
    $contasCorrentes['123.456.689-11'],
    200
);

$contasCorrentes['123.256.789-12'] = depositar(
    $contasCorrentes['123.256.789-12'],
    900
);

titularComLetrasMaiusculas($contasCorrentes['123.256.789-12']);

foreach ($contasCorrentes as $cpf => $conta) {
    exibeMensagem(
        "$cpf {$conta['titular']} {$conta['titular']}"
    );
}

<?php

function sacar(array $conta, float $valorASacar): array { if ($valorASacar > $conta['saldo']) { exibeMensagem("Você não tem saldo suficiente"); } else { $conta['saldo'] -= $valorASacar; }

return $conta;

}

function exibeMensagem(string $mensagem) { echo $mensagem . PHP_EOL; }

function depositar(array $conta, float $valorADepositar): array { if ($valorADepositar > 0) { $conta['saldo'] += $valorADepositar; } else { exibeMensagem("Depositos precisam ser positivos"); } return $conta; }

function titularComLetrasMaiusculas(array $conta) { $conta['titular'] = mb_strtoupper($conta['titular']); }

Fatal error: Uncaught Error: Call to undefined function mb_strtoupper() in C:\Users\AVELL\Documents\Programação\php\avancando\funcoes.php:32
Stack trace:
#0 C:\Users\AVELL\Documents\Programação\php\avancando\banco.php(35): titularComLetrasMaiusculas(Array)
#1 {main}
  thrown in C:\Users\AVELL\Documents\Programação\php\avancando\funcoes.php on line 32
C:\Users\AVELL>php -a
Interactive shell

php > echo extension_loaded('mbstring');
php >                                                                                                                   

;extension=bz2
;extension=curl
;extension=ffi
;extension=ftp
;extension=fileinfo
;extension=gd2
;extension=gettext
;extension=gmp
;extension=intl
;extension=imap
;extension=ldap
extension=mbstring
;extension=exif      ; Must be after mbstring as it depends on it
;extension=mysqli
;extension=oci8_12c  ; Use with Oracle Database 12c Instant Client

; Directory in which the loadable extensions (modules) reside.
; http://php.net/extension-dir
;extension_dir = "./"
; On windows:
extension_dir = "ext"
2 respostas
solução!

Consegui resolver o problema. Eu realizei um phpinfo();

<?php
phpinfo();
?>

e vi que ele não estava encontrando o caminho do arquivo "php.ini"

Configuration File (php.ini) Path        C:\Windows
Loaded Configuration File                (none)
Scan this dir for additional .ini files  (none)
Additional .ini files parsed             (none)

e renomeei o arquivo "php.ini" para "php" e ele passou a carregar a extensão. Fica a solução para caso alguém tenha o mesmo problema.

Walter, provavelmente o Windows tava escondendo a extensão do arquivo, aí você acabou nomeando ele pra php.ini.ini. Que bom que já conseguiu resolver. :-D